異なる言語に翻訳する必要がある 2 つの項目 (記事と製品) を含む Web サイトがあります。
記事のために、2 つのテーブルを作成しました。
[articles]
id PK
posted_on
[articles_local]
id PK
article_id FK(articles.id)
title
body
lang_code
言語コードと ID を格納するために 3 つのテーブルを作成することもできましたが、アプリケーションが比較的小さいため、やり過ぎだと思いました。
問題は製品にあります。製品には、翻訳する必要がある 2 つの情報 (製品名と製品カテゴリ) があります。他のすべてはニュートラルで、すべての言語と同等です。
製品のテーブル構造は次のとおりです。サポートが必要です。
[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
テーブルには 3 つの言語の翻訳されたカテゴリ名が保持されます。カテゴリは全部で 6 あり、すぐには変更されません。
には、製品のproducts_local
翻訳された説明と、product
各言語で同じ情報を示す表のみがあります。
私の製品構造は少し混乱していると思いますが、その理由と改善方法がわかりません。これは、記事の構造に基づいていると思います。これは、私にとってより「正しく」きれいに見えるものです。
このテーブル構造を改善する方法はありますか?
それが問題かどうかはわかりませんがphp
、フォルダ名に基づいて記事と製品を抽出しますit
, en
, ru
:
$lang = // get folder name from URI
$sql = "SELECT * FROM articles_local WHERE lang_code = :lang";
// bind $lang to :lang