2010-05-24 33 views
0

我想在我的數據庫中實現一些本地化。SQL多個主鍵 - 本地化

它看起來是這樣的(僅用於澄清前綴)

TBL-分類
ID
語言
名稱


TBL-文章
ID
類別ID

現在,在我的tbl-Categories中,我希望擁有跨越ID和語言的主鍵,以便ID和語言的每個組合都是唯一的。在tbl-Articles中,我希望一個外鍵在類別中引用ID,但不是語言,因爲我不想將文章綁定到某種語言,只有類別。

當然,我不能將外鍵添加到主鍵的一部分。我也不能只在類別的ID上有主鍵,因爲那時只能有一種語言。沒有主鍵完全禁用外鍵,這也不是一個好的解決方案。

你有什麼想法,我可以以優雅的方式解決這個問題嗎?

謝謝。

回答

1

鑑於此情況,您需要在類別和語言之間建立一對多關係。創建3個表:

  1. 類別同類別ID和名稱爲列
  2. 語言與LanguageID和名稱作爲列
  3. CategoryLanguage與CategoryLanguageId,類別ID和LanguageID(創建類別ID和LanguageId其建立唯一性複合主鍵)

您不必對文章表做任何事情,因爲ID和CategoryId確定文章可以在某個類別中,但不依賴於語言。

HTH

+0

謝謝,這正是我所尋找的。找出類似的東西,用兩張表而不是三張。這是更通用的。謝謝。但有一個問題 - 分類表上的名稱是故意還是錯字? – Max 2010-05-24 23:42:45

+0

不客氣,我故意給了名字......我的意思是CategoryName – Raja 2010-05-25 00:30:15