将一种类型的对象与多种类型的其他对象中的一种关联的最佳方式是什么?数据库:将一种类型的记录与多个其他表相关联
例如,简单的场景:
tblNews (_newsId_, _title_)
1, Hello world
2, Lorem ipsum
tblPeople (_personId_, _personName_)
1, John Smith
2, Joe Bloggs
tblPlaces (_placeId_, _placeName_)
1, Townville
2, Smallplace
什么是用于定义tblNews的项目和两国人民和地方之间的关系(例如新闻项目NewSID的= 1(你好世界上最好的方法)可能是与personId = 2(Joe Bloggs)和PlaceId = 1(Townville))相关?我已经使用两个表中考虑:
tblObjectTypes (_typeName_, _typeTable_, _typePK_)
person, tblPeople, personId
place, tblPlaces, placeId
tblNewsRelationships (_relationshipId_, _newsId_, _objectType_, _objectKey_)
1, 1, person, 2
2, 1, place, 1
这里tblNewsRelationship限定了新闻项是在关系,它涉及一种类型的对象和该对象的主键。
tblObjectTypes包含每种类型的对象,该新闻项目可能涉及到,这表类型的对象存储在和领域应该用来看看他们。代码将转到tblObjectTypes,查找关系中定义的objectType,并使用typeTable和typePK查找给定其objectKey的正确记录。
然而,这似乎是什么似乎像它应该是一个普遍的问题非常令人费解。我已经搜索和搜索,但不知道描述这种关系类型的术语是不可能找到有用的东西的,所以我不知道是否存在创建这种关系的“正确”方式。
对不起,问这么长的问题。
我环顾四周多一点,和父/子类型的解决方案(如http://stackoverflow.com/questions/4969133/database-design-problem)似乎是最合适的。 – rossng 2011-02-26 16:45:21