首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >多语言数据库的架构

多语言数据库的架构
EN

Stack Overflow用户
提问于 2015-12-09 23:50:33
回答 1查看 191关注 0票数 1

我见过一些关于这个问题的问题(例如herehere),但我只想澄清另一种方法

我们有自动取款机

产品

  • Id
  • 名称

现在我们需要添加对少数语言的支持(这是一种SaaS解决方案,给定的客户可能有两种语言-- max 3-4 )。每个SaaS租户都有自己的数据库)

在所有其他建议的解决方案中,它涉及修改模式(以某种方式)。更糟糕的是,搜索变得更加复杂。相反,我想的是将所有可翻译的值存储在同一列中(在本例中为: Name)。因此,具有两种语言内容的典型行如下所示

Id _名称

11 en :香蕉 es: Plátano zh :香蕉

-是一个示例拆分器(这将是一个正确的特殊字符,不会与用户输入冲突)。

这样,搜索就简化得多了,而且我对模式所做的更改也非常少。其他一切(基于选定用户区域设置的更新/检索可以通过代码(C#)进行管理)

所以我的问题是,这是否一个可以接受的方法?如果没有,你在这里面看到了什么问题?

EN

回答 1

Stack Overflow用户

发布于 2015-12-09 23:58:17

这种方法的主要问题是,为了按名称搜索产品,您必须使用LIKE '%(productName)%'进行全表扫描。全表扫描提供极差的性能。这不仅表现不好,这是拒绝服务攻击的基础。

通过使用全文索引,您可以获得比糟糕透顶的性能更好的结果。我对全文索引没有足够的经验来对这些索引提出建议,但据我所知,由于同一列中有不同的语言,所以您很可能会遇到排序规则的麻烦。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34191255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档