多语言数据库结构优化
本题探讨了存储多语言数据的最佳数据库结构,同时避免了表修改或数据重复。提供了三种方法:
方法 1:
此方法将数据组合到具有特定于语言的列的单个表中,例如:
[ products ] id (INT) name-en_us (VARCHAR) name-es_es (VARCHAR) name-pt_br (VARCHAR) description-en_us (VARCHAR) description-es_es (VARCHAR) description-pt_br (VARCHAR) price (DECIMAL)
限制:需要为添加的每种新语言修改表。
方法 2:
此方法为每种语言创建单独的表,例如如下:
[ products-en_us ] id (INT) name (VARCHAR) description (VARCHAR) price (DECIMAL) [ products-es_es ] id (INT) name (VARCHAR) description (VARCHAR) price (DECIMAL)
限制: 每个语言表中的价格字段重复。需要为每种新语言创建新表。
方法 3(推荐):
此方法使用中性表和单独的翻译表,其结构如下:
[languages] id (INT PK) code (VARCHAR) [products] id (INT PK) neutral_fields (MIXED) [products_t] id (INT FK, PK) language (INT FK, PK) translated_fields (MIXED)
优点:
以上是如何优化多语言数据库结构以实现高效存储和检索?的详细内容。更多信息请关注PHP中文网其他相关文章!