I've read several articles online that explain how EAV structures work, but there are different interpretations of them. Some articles mention that it's a representation of a data model metadata (or schema). Other articles describe an EAV structure as being an ontology. I picture an ontology as either a conceptual model (showing relationships among "things" in the world), or class instances to the actual data in a database.
Can someone explain what each table in this model represents in Layman's Terms and how one would use this EAV data model?
I didn't see this as a representation of a data model, because [Object] is not directly linked to [Attribute]. You need an actual value to relate those two. So there's nothing to enforce that you could use a [Attribute] A with [Object] O if A is a field/column of table O in your data model. Now I did see the RI tables. I assumed that meant "Referential Integrity". But if we're talking about ontologies, then we could call it relationship identity. I'm merely referring to the relationship or predicate when talking about an ontology triple–meaning Subject/Predicate/Object. Note, that the joins are not connected with attribute, which would represent more of a relational data model FK/PK relationship with table columns, so I expected it to be connected to Attribute, not Object. It's connected with [Object].
Please shed some light on this if you're able. Maybe I'm thinking too much into this. If you have a different EAV model that's useful, let me know.
Reference: http://eav.codeplex.com
Best Answer
Here is what I think is intended in this model:
You are quite right to observe that the modeling of relationships is flawed insofar as it doesn't account for the implementation of these relationships. RIConfig should join to Attribute not to Category - or rather, there should be an intersection table between RIConfig and Attribute to allow for compound primary/foreign key relationships.
As I noted above, domain constraints are also not handled with realistic flexibility.
Given the limitations of this model, it would not be adequate as a metadata repository for many real-world databases.