2013-10-22 44 views
0

我有一個需要翻譯成不同語言的2個項目的網站:文章和產品。MySQL多語言表格結構

對於文章中,我創建了兩個表:

[articles] 
    id PK 
    posted_on 

[articles_local] 
    id PK 
    article_id FK(articles.id) 
    title 
    body 
    lang_code 

我可能已經創建了三個表來還存放了語言代碼和編號,但我認爲這是矯枉過正,因爲我的應用程序是比較小的。

問題出在產品上。產品有兩個需要翻譯的信息,產品名稱和產品類別;所有其他人都是中立的,等於所有語言。

這裏是我的產品,我需要幫助的表結構:

[products] 
    id PK 
    name // always the same in all languages 
    product_code 
    weight 
    image_url 
    category_id FK (category.id) 

[category] 
    id PK 
    cat_name_IT 
    cat_name_EN 
    cat_nameRU 

[products_local] 
    id PK 
    product_id FK(products.id) 
    prod_description 
    lang_code 

所以基本上category表包含了三種語言翻譯的類別名稱。這些類別共有6個,不會很快改變。

products_local只有產品的翻譯說明和product表中每種語言相同的信息。

我認爲我的產品結構有點搞砸了,但我無法弄清楚爲什麼以及如何改進。我認爲這是基於對我來說似乎更「正確」和清潔的文章結構。

有沒有什麼辦法可以改進這種表格結構?

我不知道它的問題,但在我php我解壓基於文件夾的名稱,itenru的物品和產品:

$lang = // get folder name from URI 
$sql = "SELECT * FROM articles_local WHERE lang_code = :lang"; 
// bind $lang to :lang 

回答

1

這沒關係,我認爲。

如果您只需要兩種或三種固定語言的翻譯,我只需將翻譯文件添加到普通產品表中即可。

+0

感謝您的回答。我知道我可以做到這一點,但這種方式感覺更有組織性和可管理性,如果將來我需要更改某些內容或添加更多列,這種方式更容易。 –