gpt4 book ai didi

mysql - 具有二进制信息的多行多列DB表的设计

转载 作者:行者123 更新时间:2023-11-29 06:12:26 27 4
gpt4 key购买 nike

我们想在 sql 数据库中创建一个包含 ~10^6 行的表。每个条目都有许多二进制属性(比如大约 30 个,每行只有几个属性设置为 True,大多数设置为 False)和一些整数属性(比如大约 5 个) .

如何设置这样的表?

具体来说,我应该在表中为每个属性(二进制或整数)只设置一列,还是应该为整数属性创建列,并在新表中包含二进制属性以及多对多关系?或者还有其他更好/更清洁的选择吗?

我应该补充一下

  • 我们经常会查询具有给定属性组合的行,因此我们希望这些选择易于编写、简洁且快速,

  • 我们会定期添加二进制属性

一个典型的条目看起来像,具有整数属性 I 和二进制属性 B:

EntryID | I1 | I2 | B3 | B4 | B5 | B6 | B7 | B8 | B9 | ... | Bn
---------------------------------------------------------------
1234567 | 12 | 5 | 2 | F | F | F | F | T | F | ... | F

最佳答案

我建议不要使用太多只有 true/false 值的列,而是将整数类型的列命名为“some_status”,以替换一些具有相同类别的属性。例如 some_status = 10 代表事件,some_status = 20 代表不活动,some_status = 30 代表待处理等。它可能有助于减少一些列。

建议 2

正如您提到的,您将定期添加二进制属性,因此我建议像下面这样设计您的数据库,以便您可以随时更新 Binary_property 表。

对于只有少数二进制属性为真的情况,您可以考虑仅在 Entry_Binary_properties 表中添加这些二进制属性。稍后选择时,如果Binary属性不在Entry_Binary_properties表中,则默认为false。

希望这会有所帮助。 =)

enter image description here

关于mysql - 具有二进制信息的多行多列DB表的设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37607834/

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