gpt4 book ai didi

mysql - sten 百分位数 t 分数的数据库标准化

转载 作者:行者123 更新时间:2023-11-29 21:20:01 27 4
gpt4 key购买 nike

我刚刚开始在 MySQL 中为我的数据库建模。

所以我有一个名为“norms”的表,其中包含以下列:

id (int) -- 主键
fk_category_id (int) --- 来自另一个表的外键
raw_score_min (int) --- 范围所需的下限分数
raw_score_max (max) --- 范围所需的上限分数
sten(int)---标准十(值1-10)备注
percentile (int) --- 百分比备注(取值1-100)
t-score (int) --- 另一个具有奇怪相关性的评论
fk_classification_id --- 来自另一个表的外键

现在,并非该数据库中的每一行都会使用 sten、百分位数和 t 分数。

在大多数情况下,只会使用这三种方法中的一种。然而,在特殊情况下,将使用三分之二(即 sten 和百分位数)

因此,如果行堆积起来,表中将有很多行,其中 sten、percentil 和 t-score 的值为 0 的浪费列

有什么方法可以使用标准化来避免这种浪费吗?谢谢!

<小时/>

更新:
我忘了告诉大家,随着系统的发展,可能会有其他类型的“标准”(sten、t-score、百分位数),例如 CSQ 或其他标准。按照上表,这可能意味着每次出现新类型的“标准”时我都应该添加一个新列。

最佳答案

您可以创建一个新表,例如stats,其中将包含具有这些值的记录的标准十位、百分位数和 t 分数值。

CREATE TABLE stats
(
id int, -- same id as used in the norms table
sten int,
percentile int,
t-score int
);

请注意,此处的增益是因为您不会将任何数据库存储分配给那些没有任何统计信息的记录。将此与原始问题中的非规范化方法进​​行对比,您可能会为该记录存储零值。

更新:

如果您确实需要添加统计信息/列,那么我希望我的方法或您原来的方法都会很麻烦。通过规范化数据库,您仍然可以获得潜在的 yield 。

但也许新的统计数据可以即时计算,而不是持久保存到数据库中。这将避免必须不断添加新列的问题。

关于mysql - sten 百分位数 t 分数的数据库标准化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35763651/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com