我正在設計一個mySQL DB,我遇到以下問題:將表格鏈接到2個不同鍵的最佳方法是什麼?
說我有一個wall_posts表。牆可以屬於事件或用戶。 因此,wall_posts
表必須引用event_id
或user_id
(外鍵約束)。
建立這種關係的最佳方式是什麼?考慮到我必須始終能夠知道牆壁屬於誰......?
我一直在使用2個表,如event_wall_posts
和user_wall_posts
考慮這樣一個有一個event_id
場,另一個是user_id
一個,但我相信一定有什麼比這樣的冗餘解決方法要好得多......
有沒有辦法使用中間表將wall_posts
鏈接到event_id
或user_id
?
由於提前,
編輯:好像還沒有一個明確的設計來做到這一點,這兩個方法似乎不錯,所以, 哪一個是如果有大量數據的最快?
是否最好有2個分隔表(因此查詢可能會更快,因爲表中的數據會少兩倍......),還是更好的方法是使用單個wall_posts
表引用(然後是用戶和events will have a unique
wall_id`)
完全同意 - 沒有理由補習班一切都變成爲幾桌越好,完全有理由在這個實例中的多個表,這樣就可以實現參照完整性。 – MrTelly 2009-07-09 12:39:25
我在想這是多餘的,因爲我得到了兩倍相同的表結構,除了每個不同的FK外...這實際上是我如何對應用程序進行原型創建的,對於兩個表都有一個模型,但是我一直在想有一些錯誤:/ – Sylvain 2009-07-09 23:27:03