EAV 结构用外行术语解释

Mac*_*ver 6 database-design ontology eav

我在网上阅读了几篇解释 EAV 结构如何工作的文章,但对它们有不同的解释。一些文章提到它是数据模型元数据(或模式)的表示。其他文章将 EAV 结构描述为本体。我将本体描述为概念模型(显示世界中“事物”之间的关系),或者是数据库中实际数据的类实例。

有人能解释一下这个模型中的每个表在外行术语中代表什么以及如何使用这个 EAV 数据模型吗?

我不认为这是数据模型的表示,因为 [Object] 没有直接链接到 [Attribute]。您需要一个实际值来关联这两者。因此,如果 A 是数据模型中表 O 的字段/列,则无需强制您可以将 [Attribute] A 与 [Object] O 一起使用。现在我确实看到了 RI 表。我认为这意味着“参照完整性”。但是如果我们谈论本体,那么我们可以称之为关系身份。在谈论本体三元组时,我只是指关系或谓词——意思是主语/谓语/宾语。请注意,连接不与属性连接,这将更多地表示与表列的关系数据模型 FK/PK 关系,因此我希望它连接到属性,而不是对象。它与[对象]有关。

如果可以,请对此有所了解。也许我想太多了。如果您有其他有用的 EAV 模型,请告诉我。

参考:http : //eav.codeplex.com

在此处输入图片说明

Joe*_*own 6

这是我认为在这个模型中的意图:

  • 类别是一种东西。在数据模型中它是一个实体类型,在数据库中它是一个
  • 属性是事物的一个方面。在数据模型中它是谓词类型,在数据库中它是一个
  • 对象是事物的实例。在数据模型中它是一个实体,在数据库中它是一行(在特定表中)。
  • 是数据库表中谓词或列值的实例。
  • 域查找是一种允许您约束属性值的机制。此实现通过将值限制为一组合法值中的一个来工作。在数据库中,这可以比作检查约束或查找表。显然,还可以施加其他类型的约束(但不在此元数据模型中),例如范围约束。
  • RIConfig是两种事物之间的关系约束。这是数据模型中的关系类型或数据库中的外键约束。在这个级别,它描述的是关系规则,而不是关系的实例。
  • RI是特定实体之间关系的一个实例。在物理数据库中,这将是外键索引中的记录(也许?)

您非常正确地观察到关系建模存在缺陷,因为它没有考虑到这些关系的实现。 RIConfig应该加入Attribute而不是Category - 或者更确切地说,RIConfig 和 Attribute 之间应该有一个交集表,以允许复合主键/外键关系。

正如我上面提到的,域约束也没有以现实的灵活性处理。

鉴于此模型的局限性,它不足以作为许多现实世界数据库的元数据存储库。