2012-11-22 59 views
5

我已經創建了下面的表格:一對一關係還是使用相同的表?

Animes(ID,標題,日期),漫畫(ID,標題,日期),TVSeries(ID,標題,季節,情節,日期)

他們中的一些已經擁有導演,流派,文章等的外鍵(用於一對多或多對多關係)。

現在我想創建另外兩個表評論(id,評級,日期)和帖子(id,thumbid,articleid,reviewid)。 審查是關於一個動畫和/或漫畫TVSerie和反之亦然,但審查的屬性可能在多個表中。關於帖子也是如此。

這是一個典型的單獨關係表中的一對一關係示例,還是向現有表中添加更多屬性更有效? 那麼更多的表和關係或更少的表更多列?

謝謝,我希望我的問題不是那麼愚蠢,但我有點困惑。

回答

1

我不完全相信你的要求是什麼,但有如下幾種選擇:

  1. 有評論有2列,無論是作爲一個外鍵適用表,可以爲NULL。這是真正的時候,一個單一的審查可以是關於兩個。

  2. 有一個評論Comics and ReviewsAnime表。然後,您將在每個表格中包含來自評論的所有字段(並且沒有評論表格)。

  3. 另一種方法是將它們與評論表一起使用,然後這兩個表格只有兩個字段分別是評論和漫畫/動畫的外鍵(因此評論和漫畫之間沒有直接鏈接/動漫)。

  4. 有一個基本表,動漫和漫畫鏈接到1對1,並有評論鏈接到該表。

  5. (編輯)如果所有字段都將相同(或相似)的動漫/漫畫,您可以將它們合併成一張表並添加一個類型字段,指示Anime/Comics,然後問題消失了。這與基表選項類似。

編輯:2個審查表可能會提供最佳性能(除非你想選擇或者所有的評論,常常),但適當的指數的表現不應該是一個問題與上述任何。

+0

讓我拿起一支鉛筆和一張紙,試着理解你對我的解釋。謝謝 –

+0

1st。你的意思是2個更多的專欄?否則它沒有任何意義。第2位。這就像:添加更多的屬性到現有的表格選項,對吧?有動漫表和插入與評論,職位等屬性列。這更像是多對多的關係。在這種情況下有用嗎? 4。爲什麼要這樣做?我不需要Anime-Comics-TVseries直接關係,*(我認爲)。 –

+1

@fat_mike(1)是的,還有2列。 (2)將具有以下內容:ReviewsComics,ReviewsAnime,Comics,Anime。 (3)將有相同的2,但也評論(和評論漫畫,評論安妮只會有字段鏈接評論和漫畫/動漫表)。 (4)允許你有評論指向TVSeries和漫畫和動漫指向那裏,所以你不必擔心直接鏈接評論和漫畫/動漫(所以在評論,漫畫和動漫有TVSeries FKs)。它們都是可行的,每個都有次要的優點和缺點。 – Dukeling

2

在我看來,最好避免一對一關係的外鍵關係。它最適合一對多關係。

+0

因此您建議您在現有表格中添加評論屬性?因此,例如漫畫將像(編號,標題,日期,評級,reviewdate)和TVSeries(編號,標題,季節,插曲,日期,評級,reviewdate)等.. –

+0

是的..!與多個表相比,它也提升了性能。您創建的表格越多,您需要編寫的連接數越多。我認爲我證明了它的正確性。如果您同意我的答案,請將其付諸表決。 – Chella

+0

我不知道我是否同意,因爲我說我很困惑。那麼它的個人項目,所以它會不斷升級,並在開始編程之前,我想有更高效和可擴展的數據庫,我可以創建。因爲例如在評論和/或帖子或任何其他表格中,我可能會在未來添加更多的屬性。那麼14-15列的表格是不是會太「沉重」?謝謝您的回答。 –

相關問題