我喜欢转发Relation DB的概念,所以我通常创建表。 但是现在我得到了一个任务,这让我想到了使用带有翻译的json字段。
简要说明任务: 有必要实现多语言应用程序。我通常创建表格:
他们通常不会变得太多(大约5-7)。但现在我需要导入一些带有GEO数据的数据库(国家,地区,城市,地区)。我试图创建1个转换表,但后来我们失去了使用外键和多态连接的能力。我的例子不是那么大,但是我有很多这样的表,并且应该创建过多的翻译表(并且它们只包含Id,Relation_id和Name)。
我想尝试使用JSON字段。 MySQL 5.7提供了这种字段。 该领域的结构如下:
...
json_encode([
'ru' => ['locale' => 'ru', 'name' => $data['title_ru']],
'en' => ['locale' => 'en', 'name' => $data['title_en']],
]);
...
选择样本:
SELECT
alias, translations,
JSON_UNQUOTE(json_extract(translations, '$.en.name')) AS like_name
FROM geo_countries
WHERE
JSON_UNQUOTE(json_extract(translations, '$.en.name')) LIKE '%Ukraine%'
OR
JSON_UNQUOTE(json_extract(translations, '$.ru.name')) LIKE '%Ukraine%';
所以问题是: 问题是: 谁使用这种方法,是否有利润,生产如何显示?