0

我有一個簡單的產品數據庫。I18N翻譯系統:關於ER圖設計的建議?

每個產品都是N:1相關的幾個屬性,比如材質,性別,形狀等等。

每個屬性是一個表(例如表「形」與方形,圓形和其它行)

現在,我想給「翻譯」每個屬性,例如,我想要的「廣場」的記錄,與「quadrato」(it),「carré」(fr)等相關聯。 「語言」是另一個表格(it,fr,en),並且可以添加或刪除語言,因此具有「it_value」,「fr_value」列顯然是不可能和醜陋的。

我在想

  • 創建表「譯着」用ID,LANGUAGE_ID和價值
  • 創建表「語言」與編號,名稱
  • 創建表「形」和「材料」用的ID和其他列
  • 創建(例如)的表‘MATERIAL_TRANSLATIONS’與translation_id和material_id
  • 創建表‘SHAPE_TRANSLATIONS’具有相同的想法,如上面

您認爲其他解決方案可以更高效還是更優雅?

(對不起,不張貼ER圖太多,但我不是這樣「圖形」的人;!))

回答

1

何其相似的形狀/材料表將會是?你能用一個「屬性類型」(形狀/材質)和「屬性名稱」(方形,棉花等等)字段集的單個表來完成嗎?

如果是這樣的話,那麼我可能會使用這樣的:在項目表

items: id, name 
languages: id, name 
items_translations: item_id, language_id, name 

「名稱」將是你的系統默認語言(如英語),以及任何翻譯會在items_translations表的「名稱」字段中。

+0

這是正確的答案,但在我的情況下,我認爲有必要有不同的「屬性」表。例如,我確實需要有一個「形狀」表。 –

1

聽起來不錯。

您可以使用更抽象的表示法,但我認爲您的顯式映射方法更易於理解,因此更好。