在具有可选字段的SQL DB中构建表的最佳方法是什么?

时间:2019-11-13 19:17:11

标签: mysql sql database-schema

我想构建一个表来存储策略,并且在某些情况下,策略有一个名为“ certificate_number”的字段,但是假设100个策略中只有20个具有此字段。

那么哪种方法更有效?

1.-向策略表中添加一个可为空的字段,如果不需要证书编号,则将其设置为空

2.-创建一个单独的表,例如certificate_number_policy,该表引用带有外键的策略,并且具有字段certificate_number

3.-第三种选择?

我应该选择哪种方式?第一个选项显然更简单,但是我将有大量的空字段,第二个选项不保留空字段,但增加了复杂性...

2 个答案:

答案 0 :(得分:0)

绝对2 您可以动态编辑certificate_number列表 允许用户仅选择“ certificate_number”列表以防止错误。 谷歌翻译器

答案 1 :(得分:0)

老实说,与您有同样的问题,我用字段创建了另一个链接表:

primary table link / policies_name / values

因此,您将所有需要的策略与其值一起添加。

通过这种方式,您可以拥有5个用于PrimaryPolicies ID#1的策略,以及3个用于PrimaryPolicies ID#2的策略 您可以添加或不添加空策略。

     PrimarytableLinkID = 1 / Policies_name = 'certificate_number' / values = '1xxx1'
     PrimarytableLinkID = 1 / Policies_name = 'other policies' / values = 'yyyyy'