可变数量属性的数据库设计

时间:2015-05-18 06:54:04

标签: database oracle data-modeling

我正在尝试为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 

此外,未定义属性数,因此这些属性不能与db中的属性相对应。

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

例如:

**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

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

1 个答案:

答案 0 :(得分:0)

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

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