多語言資料庫結構最佳化
本題探討了儲存多語言資料的最佳資料庫結構,同時避免了資料表修改或資料重複。提供了三種方法:
方法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中文網其他相關文章!