2010-07-02 30 views
0

我正在構建一個數據庫,發現我有兩個不同的對象,我試圖建模。每一個都包含相同的東西(一個varchar和一對外鍵),並且會爲可預見的未來做好準備。在應用程序之後或其組件之後建模數據庫會更好嗎?

我(現在)要把它們放在同一個表中,帶有一個額外的'type'字段,但我想知道是否有標準的做法。

編輯:爲了澄清,他們都將以相同的方式使用,唯一的區別是他們顯示的地方/時間。

回答

1

的規則如下:

如果對象是真正的不同,會以不同的方式行事,而不管他們是在執行多麼相似,你應該把它們放在兩個不同的表。

蘋果和橘子。

如果對象在同一個上下文或集合中的任何一點上都是相互比較的,那麼您將基類存儲在一個帶有代碼字段的表中,並使用外鍵將子類存儲在另外兩個表中。*

蘋果和橘子的「水果報告」。我們有多少種水果?有多少種水果來自加州?

*注意:實際上有很多方法來攻擊數據庫中的子類問題。問題的關鍵不在於你使用哪種策略,而在於你將它們視爲一種常見的超類型。

0

您可以使用不同的模式來設計數據庫。例如,您可以使用每種類型的表格設計表示對象,也可以使用按照平面設計的表格來表示對象。每個人都有優點和缺點,但我沒有看到他們是「正確」的方式。

但是,對於您的設計,如果對象基本相同,我會嘗試使用相同的對象並將類型列丟棄。或者如果它們真的不同,看起來外鍵列將與不同的表相關,所以你想要有明確定義的主鍵,外鍵關聯的不同表。

相關問題