我有兩個父表,BusinessGroup和SocialGroup,以及一個子表,Members。成員可以屬於任何一方,但不能同時屬於兩方。最好的MySQL表結構:2個父母,1個孩子
據我所見,有兩種構建子表的選項。
選擇1:爲ParentType包含一個字段,爲ParentID包含另一個字段。 ParentType將是一個枚舉(Business,Social),ParentID將是相應父表中的PK。
選項2:爲BusinessGroupID添加一個字段,爲SocialGroupID添加另一個字段。在這種情況下,這些字段需要可以爲空,並且只能包含一個值。
關於哪種方法最好的想法?
我嘗試了MySQL中的選項1,並從孩子創建了兩個外鍵給父母。儘管插入值時我遇到了麻煩,因爲MySQL在兩個父表中都希望有相應的值。
作爲一個補充問題:如果我有更多的父母,例如, 6?
謝謝!
注:選項#2包括所謂專屬弧形,並且被普遍認爲是不好的做法。 請看這兩個問題,他們可能會幫助你: http://stackoverflow.com/questions/987654/in-a-stackoverflow-clone-what-relationship-should-a-comments-table-have-to-任務/ 987685#987685 http://stackoverflow.com/questions/621884/database-development-mistakes-made-by-appdevelopers – 2010-07-21 03:36:42