0

異なる言語に翻訳する必要がある 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
4

1 に答える 1

1

大丈夫だと思います。

2 つまたは 3 つの固定言語の翻訳のみが必要な場合は、翻訳フィールドを通常の製品テーブルに追加するだけです。

于 2013-10-23T08:08:31.733 に答える