【问题标题】:Refactoring a database to add support for internationalization / multiple languages重构数据库以添加对国际化/多语言的支持
【发布时间】:2010-01-05 09:22:41
【问题描述】:

是否有任何经过验证的方法可以将数据库重构为支持多个条目版本?

我有一个非常简单的数据库,其中包含一些表,例如:

article(id, title, contents, ...) 
...

如果您只打算存储每篇文章的一个版本,这显然是一种魅力。我记得我很清楚地问过我的客户系统是否应该能够存储不同语言的文章,我真的强调以后添加这种支持会很昂贵。你大概可以猜到客户当时说了什么..

我目前的方法是创建几个新表,例如:

language(id, code, name)
article_index(id, original_title) <- just to be able to group articles

然后在原文章表中添加外键:

article(id, title, contents, article_index_id, ...)

我很想听听您对这种方法的看法以及您在该主题上的经验。

【问题讨论】:

标签: database internationalization


【解决方案1】:

这是我过去成功使用的一种方法。另一种方法是将所有文本字段替换为一个标识符(int、guid,无论您想要什么),然后将所有文本字段的翻译存储在一个表中,以该标识符和语言 id 为键。

就我个人而言,我在第一种方法(即你的方法)上取得了更大的成功,例如,我发现通过 ORM 更容易处理。例如,在我当前的项目中使用 NHibernate ORM,我创建了相当于语言感知会话的内容,它自动为每个对象返回正确的翻译集。方法的一致性显然对此有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-28
    • 2019-07-10
    • 2013-05-13
    • 1970-01-01
    • 1970-01-01
    • 2012-11-25
    • 2010-09-18
    • 2011-06-22
    相关资源
    最近更新 更多