將一種類型的對象與多種類型的其他對象中的一種關聯的最佳方式是什麼?數據庫:將一種類型的記錄與多個其他表相關聯
例如,簡單的場景:
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