【问题标题】:database design dynamic table数据库设计动态表
【发布时间】:2012-07-04 23:02:26
【问题描述】:

我有字段名 f1、f2、f3、f4、f5、f6。这些字段名称将根据其他字段名称的值显示。

例如, 如果 f2 值为“COND1”,则必须显示 f3 f4 必须显示,如果 f3 值为 "COND

字段名称不固定,可以添加、编辑和删除。 COND1、COND 等值也不是固定的,可以更改。

谁能指出如何设计数据库 谢谢

【问题讨论】:

    标签: mysql sql database database-design


    【解决方案1】:

    RDBMS 的动态表是一种反模式。不要那样做。

    也许 NoSQL 数据库可能更适合您的用例 - 这就是它们的用途。

    或者,如果您坚持使用关系,那么您需要让您的数据库适应动态结构——比如键值表,并自己管理结构。 IE。表结构将保留结构元数据和数据。

    如果您的结构足够简单,您只需要一个附加表,并带有一个复合键 - 原始 ID 和参数名称。

    【讨论】:

      【解决方案2】:

      如果您的唯一条件是字段 == 值,那么我会考虑:

      | Field Table |
      |-------------|
      | id          |
      | fieldName   |
      |-------------|
      
      | Conditional Table |
      |-------------------|
      | id                |
      | comparisonField   |
      | comparisonValue   |
      | displayField      |
      |-------------------|
      

      因此,如果字段 2 == “COND1”,则条件 1 将具有值 1、2、“COND1”、4 以显示字段 4

      如果您想要其他比较,小于、大于等。还有一个比较器表可以链接到条件表。

      【讨论】:

        猜你喜欢
        • 2012-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多