2013-05-07 86 views
0

多次投票表架構中: Multiple Voting Table Schema 單表決表模式: Single Voting Table SchemaID參考表,而不是列表

企業,產品和評論都可以投票。對於第一個明顯的解決方案,我選擇爲每個關係創建關聯實體。不過,我們認爲也許會有更好的解決方案。

經過廣泛研究並尋找解決方案後,我找到了第二個模式的概念,它具有一個帶有列(實體)的單個投票表,以定義表或類型的表ID(EntityID是它來自的表的ID)所屬的ID。唯一的問題是投票表和三個實體之間沒有關係。 實體列有沒有辦法引用表而不是表的ID?

歡迎任何有關開發模式的其他建設性方法的建議。

回答

0

我建議你將商業,產品和評論表結合到一張表中,並用一個額外的colume來表示'Type'。然後,您可以強制您與投票表的關係。

+0

與實際的複雜表相比,這些表更簡單。評論,商業和產品表中的每個列都有不同的列。 – AlGallaf 2013-05-07 19:14:35

+0

好的,這很公平。你需要嚴格定義Vote表和另一個表之間的FK關係3.你可以假定關係在那裏,並且將驗證作爲INSERT語句的一部分處理到VOTE表中,即使你沒有明確定義的KEY桌子。 – 2013-05-07 19:20:16

+0

我已經想到了。我只是認爲可能會有更有效的方式。我也擔心這可能會在不久的將來出現問題。使用第二個模式而沒有在投票和三個表之間建立關係會造成什麼後果?我能想到的第一個問題是,你可以創建一個記錄來投票處理一個不存在的業務記錄。 – AlGallaf 2013-05-07 19:25:06