【发布时间】:2020-11-25 08:10:29
【问题描述】:
目前,该数据库有 2 种不同的语言:英语和法语。知道我将来可能会添加更多语言这一事实,这三种解决方案中的哪一种更合适?
#1。为每种语言创建单独的page_translation 表:
CREATE TABLE page_translation_en (
id INT,
page_id INT,
translation LONGTEXT
);
CREATE TABLE page_translation_fr (
id INT,
page_id INT,
translation LONGTEXT
);
...
#2。将translation 列添加到pages 表中:
CREATE TABLE pages (
id INT,
page_id INT,
translation_en LONGTEXT,
translation_fr LONGTEXT,
...
);
#3。创建一个包含所有翻译的page_translations 表
CREATE TABLE page_translations (
id INT,
page_id INT,
language_id INT,
translation LONGTEXT
);
+1M 页面和 3 种不同的语言会影响解决方案 #2 & #3 的查询性能,其中所有翻译都在一个表中?另外,考虑到我想搜索翻译内容...
【问题讨论】:
标签: database-design