我目前正在開發一個網站,其中某些動態數據必須以各種語言提供。現在的語言是三種,但是想法是在未來增加更多。這是數據庫中多語言數據的正確答案嗎?
想象一下,你有一個頁面,並希望提供三種不同語言的內容的第一種情況。我的數據庫中的網頁存儲這樣的:
因爲對我有每一種語言,我創建的網頁新翻譯的內容這個偉大的工程。
但是,隨着項目的進展,我發現更多需要翻譯數據的情況。下圖是具有類型,子類型和狀態的產品示例。所有這些數據必須以所有不同的語言提供。
這是不是有點大材小用,因爲我將最終只持有ID的例如表?對於每個需要保存翻譯內容的表格,我都需要一個新的表格。
有沒有更好的方法?
我建議不要過於通用,並會失去正確的外鍵實施。請看[這篇文章](http://stackoverflow.com/a/14838175/533120)瞭解更多信息。 –
@BrankoDimitrijevic通過這種結構,編寫查詢的最佳方式是什麼?爲了獲得所有類型,我想:'SELECT type_text FROM TypesTranslations JOIN(語言,類型)ON(TypesTranslations.language_id = Languages.language_id AND TypesTranslations.type_id = Types.type_id)WHERE Languages.language_code ='en''最大問題是,例如,檢索產品的所有信息或獲取按類型排序的所有子類型(因爲where子句中的列'language_id'不明確)。 –
我不知道你想如何檢索類型,但這與翻譯無關。但是,您可以檢索該類型,只需在'type_id'上使用'TypeTranslation'加入它,然後按照所需的'TypeTranslation.language_id'進行過濾。 –