我曾在一个项目中工作过,该项目的表格有点像这样:
tbl_texts
id, item_id, item, type, lang, value
1, 44, 'product', 'name', 'en', 'Product Name'
2, 44, 'product', 'description', 'en', 'Product description'
3, 55, 'category', 'name', 'en', 'Category name'
4, 55, 'category', 'name', 'fi', 'Category finnish name'
在 6 个字段中,1 个是主键,4 个是组合索引。从未使用主键选择数据。始终使用 Item_id、item、type、lang 索引。
1)我想知道这是存储数据的好方法还是坏方法?
2) 有一个必须加入两次的表是不好的设计(以防你想要产品的名称和描述)。
3)我是否应该将数据分成如下表格:
tbl_product_texts
id, product_id, type, lang, value
tbl_category_texts
(etc.)
4)或者像这样:
tbl_product_names
id, product_id, lang, name
tbl_product_descriptions
id, product_id, lang, description
(etc.)
5)甚至像这样:
tbl_product_names_en
id, product_id, name
tbl_product_descriptions_en
id, product_id, description
(etc.)
我真的很困惑这是最优化的方法。