可变信息设计表的最佳实践是什么?

时间:2015-02-15 07:15:36

标签: sql sql-server database-design best-fit

我遇到了你可能遇到的问题, 例如,有一个具有正式字段和可变字段的实体 考虑具有姓名,家庭和州的人实体,取决于州 价值

  

如果州= 1那么人必须填写有关教育的信息(很多   正式领域和一对多信息)

  

如果state = 2那么人必须填写关于健康的信息(许多正式的   字段和一对多信息)

等等。

在开发期间可能会更改此条件并且状态= 7(保险信息)还补充说,如果条件状态= 7已启动,则用户必须填写!

那么解决此问题的最佳做法是什么?设计具有舒适扩展和最少更改且易于查询的表

请注意,Xml文件很难查询(以后由其他人报告),我暂时忽略了这个解决方案。

感谢。

1 个答案:

答案 0 :(得分:1)

三种选择:

  1. 提前考虑并尝试预见所需的所有可用字段并将其编译在表格中。
  2. 假设我们有一个客户的桌子,可以是人和公司。

    我们在表格中做了类似的事情:

    示例:

    [Client]
    first_name /* person */
    last_name /* person */
    commercial_name /* corporation */
    

    如果您处理大量数据,这当然会让您制作一个非常大的表格。

    1. 您可以将这些“变量值”作为附加表来处理,并使用引用主表的外键
    2. 示例:

      [Person]
      person_id
      first_name /* person */
      last_name /* person */
      
      [Education_info]
      person_id /* refrences Person.person_id */
      .... /* info */
      
      1. Wordpress风格,一张主表,一张“元表”。
      2. 示例:

        [Person]
        person_id
        first_name /* person */
        last_name /* person */
        
        [Person_meta]
        person_id /* references person */
        key_name 
        key_value
        

        然后你就拥有属于这个人的真正可变元数据。

        希望它有所帮助!

相关问题