【问题标题】:Database design for variable number of attributes可变数量属性的数据库设计
【发布时间】:2015-07-29 13:53:52
【问题描述】:

我正在尝试为 Oracle 数据库提出一个架构。问题如下:

数据库应该代表一个属性(比如一个 url),该属性与各种值的各种属性相关联。

例如:

数据库应该有映射:

If attribute-X has value-X ==> Url-X
If attribute-Y has value-Y ==> Url-Y
If attribute-X has value-X && attribute-Y has value-Y ==> Url-XY 

还没有定义属性的数量,因此这些不能对应于数据库中的属性。

我想到的解决方法是将其存储为多名称值对并使用它在数据库中查找。

例如:

**attribute**            **Key**                  **Value**

attribute-X              value-X                    Url-X

attribute-Y              value-Y                    Url-Y

attribute-X&attribute-Y  value-X&value-Y            Url-XY

我是数据库新手,我知道这不是数据模型的简洁表示。有没有更好的方法来表示这一点?

【问题讨论】:

  • 不要使用 EAV,这在 here 中有解释。如果您确实需要具有属性的结构,请查看面向文档的 DBMS(这是非关系 DBMS 的特殊情况)。

标签: database oracle data-modeling


【解决方案1】:

您可以使用一个表对此进行建模,但是您需要不断添加属性(每个新属性的新列),这不是一个好的设计。

但是,您可以对此进行建模,以便添加属性类型,然后动态添加属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-16
    • 1970-01-01
    • 1970-01-01
    • 2017-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多