gpt4 book ai didi

mysql design : which is better, 多列还是多行?

转载 作者:行者123 更新时间:2023-11-29 02:32:04 25 4
gpt4 key购买 nike

我需要为我的项目设计一个新表,它基本上包含每个键 41 个数字的列表。列表中的第一个数字是一些距离测量值,而其余数字代表加权的百分比箱:

  • 前十个百分位数各占 1%
  • 接下来的十个各占 2%
  • 接下来的十个各占 3%
  • 接下来的十个各占 4%

总和为 1*10 + 2*10 + 3*10 + 4*10 = 100%

此数据的正常用法是垂直对 bin 求和。(即 key1-bin1 + key2-bin1 + .. ; key1-bin2 + key2-bin2 + .. ; 等等)

现在,假设这永远不会改变并且总是有 40 个具有相同 bin 分布的 bin,哪个更好?

  • 每个键一行,形式为 - key, distance, bin1, bin2... bin40

  • 每个键 41 行,形式为 - key, bin_number, value 其中 bin_number -1 保持距离

第一个选项的明显优势是减少了数据重复,而且我真的不喜欢我的“-1”解决方法。

但这感觉真的很脏而且非常“硬编码”,我记得有人告诉我数据库在某种程度上“更喜欢”第二个选项,并且在压缩、索引等方面比第一个更好地处理它。(加上在第二个选项中查询可能看起来更好,但我可以忍受代码中丑陋的查询)

谢谢!

最佳答案

您选择答案的关键是“假设这永远不会改变”。如果是这样,那么您应该使用多列表。你说得对,MySQL 和其他 dbms 系统可以很好地处理规范化数据(你的第一个选项)。但如果我正确理解你的问题,你将总是每次观察都有 41 个数据点。这意味着您的第一个选项将始终每次观察有 41 行。

MySQL 或其他 DBMS 中没有魔法。他们只是研究数据。当然,他们做得非常有效。但是行数是观察值的 41 倍已经很多了。

如果您有时每次观察有一个、有时三个、有时十个数据点,您会选择归一化的短行选项。

关于mysql design : which is better, 多列还是多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11629968/

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