我有一個包含多種語言的產品及其描述的表格。對於現在的表結構是這樣的數據庫設計 - 多個文本字段
tblProducts
productId INT PK AI
productDesc_en VARCHAR
productDesc_de VARCHAR
productDesc_it VARCHAR
等。 en是英語,de是德語
因此,根據他的語言設置來訪問者,看他的語言描述。
想知道,存儲這樣的數據有什麼好處嗎?
tblProducts
productId INT PK AI
tblProductDesc_en
descId INT PK AI
tblProducts_productId INT FK
description VARCHAR
tblProductDesc_de
descId INT PK AI
tblProducts_productId INT FK
description VARCHAR
tblProductDesc_it
descId INT PK AI
tblProducts_productId INT FK
description VARCHAR
親(一個或多個)1在該溶液中看到:
- 更容易從DB透視維持
- 從DB記錄實例化對象時(因爲只有需要使用較少的存儲器語言 將被存儲在一個對象內)
The con(s):
- 必須使用JOIN獲取可能達到性能的所需數據;
- 更復雜的getter和setter從類
別的內?
謝謝!
爲什麼不只有一個'tblProductDesc',併爲'tblProductDesc_lang'添加一列?併爲每種語言保存一個新行? –
@JaredFarrish,它與第二種解決方案有什麼不同?我仍然必須使用連接來獲取正確的結果。此外,我將不得不存儲大量空列,其中沒有特定語言的描述。 – paulus
第二你的解決方案,你指的是在你的問題?你說的是有多個表具有相同的確切列,唯一的區別是關於行(語言)的屬性。你不必有任何空行(不知道你爲什麼這麼想)。保存說明時,爲每種可用語言添加一行。 –