我们可以在eav设计中有一个具有多个值的属性吗?

时间:2010-03-16 05:51:39

标签: database-design entity-attribute-value

我正在使用EAV进行数据库设计。当我尝试使用具有多个值的属性建模实体时,我遇到了一个问题?

例如

实体

id         | name           | description
--         | ----           | ------------ 
1          | configuration1 | configuration1

属性

id         | entityId    | name  | type
--         | --------    | ----  | ----
1          | 1           | att1  | string
2          | 1           | att2  | int
3          | 1           | att3  | List<String>  (How will i model this?)

id        | attributeId    | value
--        | -----------    | -----
1         | 1              | a    
2         | 2              | 1
3         | 3              | b
4         | 3              | c    
5         | 3              | d

这是处理值列表的正确方法吗?

请提供任何有用的链接来建模吗?

另外两个问题

1)类型列表是否正确?我想确保当一个属性有多个值时,我会将类型赋予List

2)当属性对应于对象时,数据库设计将如何变化?例如,用户有地址..我将如何处理复合参数?

如果您能为我提供粗略的表格表示或图表

,那就太棒了

由于

谢加

1 个答案:

答案 0 :(得分:7)