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

看板Database (資料庫)作者 (iceman5566)時間4年前 (2020/12/13 17:45), 編輯推噓2(201)
留言3則, 2人參與, 4年前最新討論串1/1
各位前輩大家好 想請問一下在多語系的 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? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.214.209.223 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1607852714.A.D32.html

12/14 10:40, 3年前 , 1F
用RESOURCE
12/14 10:40, 1F

01/31 12:58, 4年前 , 2F
第一種作法沒有正規化。
01/31 12:58, 2F

01/31 12:59, 4年前 , 3F
第二種作法如果table有index的話,其實效能不會差。
01/31 12:59, 3F
文章代碼(AID): #1VrUAgqo (Database)
文章代碼(AID): #1VrUAgqo (Database)