[SQL ] 多語系的 table 的 Best practice?

作者: iceman5566 (iceman5566)   2020-12-13 17:45:12
各位前輩大家好
想請問一下在多語系的 table 你們會怎麼設計會是最好的 best practice?
我這邊有兩種做法
我以 Product 當作翻譯
1. 把語系在欄位直接攤開,例如 en_name, jp_name, tw_name...
優點:SQL Query 很好撰寫,不需要任何的 join
缺點:Scalability 很差,如果今天又新增多語系欄位,例如 remark 要多語系
有十個語言的話,多一個新的欄位就在新增十個新欄位。
2. 新建 language table,例如 product_language,
然後用 language id 跟 product_id 來區別各個語言名稱。
優點:不用攤開欄位,table 長相比較精簡
缺點:Join 會有成本,如果今天是大 table 會要考慮效能問題
不曉得大大們有沒有其他 solution?
作者: e23882 (呆呆要不要買降有)   2020-12-14 10:40:00
用RESOURCE
作者: nyitalumnus (阿華)   2019-01-31 12:58:00
第一種作法沒有正規化。第二種作法如果table有index的話,其實效能不會差。

Links booklink

Contact Us: admin [ a t ] ucptt.com