栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

用于国际和多语言目的的数据库建模

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

用于国际和多语言目的的数据库建模

这是我设计数据库的方式:

通过 DB Designer Fork进行可视化

i18n
表仅包含一个PK,因此任何表都只需引用该PK即可国际化字段。
translation
然后,该表负责将此通用ID与正确的翻译列表链接。

locale.id_locale
VARCHAr(5)
同时管理
en
en_US

ISO语法的。

currency.id_currency
CHAr(3)
管理ISO
4217语法的一个

您可以找到两个示例:

page
newsletter
。这两种的 管理员管理
的entites分别需要国际化的田地,
title/description
subject/content

这是查询示例:

select  t_subject.tx_translation as subject,  t_content.tx_translation as contentfrom newsletter n-- join for subjectinner join translation t_subject  on t_subject.id_i18n = n.i18n_subject-- join for contentinner join translation t_content  on t_content.id_i18n = n.i18n_contentinner join locale l  -- condition for subject  on l.id_locale = t_subject.id_locale  -- condition for content  and l.id_locale = t_content.id_locale-- locale conditionwhere l.id_locale = 'en_GB'  -- other conditions  and n.id_newsletter = 1

请注意,这是一个规范化的数据模型。如果您有一个庞大的数据集,也许您可​​以考虑对它进行规范化以优化查询。您还可以使用索引来提高查询性能(在某些数据库中,外键会自动建立索引,例如MySQL
/ InnoDB)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/430348.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号