我有一个网站,其中有 2 个项目需要翻译成不同的语言:文章和产品。
对于文章,我创建了两个表:
[articles]
id PK
posted_on
[articles_local]
id PK
article_id FK(articles.id)
title
body
lang_code
我本可以创建三个表来存储语言代码和 id,但我认为这太过分了,因为我的应用程序相对较小。
问题出在产品上。产品有两个信息需要翻译,产品名称和产品类别;其他所有语言都是中立的,与所有语言平等。
这是我需要帮助的产品表结构:
[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
的文件中,我根据文件夹名称提取文章和产品,it
, en
, ru
:
$lang = // get folder name from URI
$sql = "SELECT * FROM articles_local WHERE lang_code = :lang";
// bind $lang to :lang