什么是数据库设计中的EAV模型?这个怎么运作?

时间:2017-10-20 18:37:56

标签: mysql database entity-attribute-value

我正在开发一个项目,我们决定使用EAV(实体属性值)模型来存储类别规范及其产品价值,plz帮助我理解这一点,以便在mysql中设计灵活的数据库

1 个答案:

答案 0 :(得分:1)

Entity Value attribute中,属性及其值以行而不是列的形式输入,我引用:

  

基本思想是存储属性及其相应的值,   作为单个表中的行。

     

通常,表至少有三列:entity,attribute和   值。但是,如果只有一个相关实体,例如一张桌子   对于应用程序配置或选项设置,实体列   可以被排除在外。

例如,对于您的情况:

  

存储类别规范及其产品价值的模型,

你可以这样做

分类

  • 类别ID
  • 类别名称

CategoriesMetadata

  • 标识,
  • FieldDataType,
  • 字段名,
  • FieldDisplayName,
  • FieldDefaultValue,
  • Etc ....

这样,用户就可以定义属性,数据类型,名称和默认值(如果有)。请记住,您可能需要额外的列,例如,如果要定义组合框或列表,则可能需要另一个表来定义列表。

请注意:此模型非常复杂,您可能需要确保自己真的需要使用它,而且您的方案没有其他选择。

请参阅以下链接: