编号喜欢用play!编程多语言应用程序。我从来没有这样做过,所以即时寻找一些建议如何做到第一位。数据库模型国际化播放框架
任务: 让我们假设我有一个简单的问题和答案的应用程序。想象它就像一个调查。根据一种语言,用户选择问题并以正确的语言显示答案。 对于unstanding模型更好会是什么样子:
问题:ID,questionString
答案:ID,fk_questionId,answerString,isRightBool
正如你看到一个通常的1:N的关系。但是现在如何处理多语言支持?
- 一个想法会重复整个数据库...这个想法看起来很简单但很丑,因为后来改变的额外开销......我猜会是一场噩梦。
- 其他字段like questionStringGerman,questionStringEnglish。不喜欢这个想法...
- 每个模型类与1:n关系的附加表。像question_lang和answer_lang一样。 Colums是语言。似乎更容易处理。
- 所有翻译的一张表。 Colums是语言。看起来最简单但很难处理纠正。
哪种方法最适合动态翻译。也许我想念一些东西。如果有人能告诉我这种方法是如何解决这个问题的话,会很高兴。
Thx提前!
Thx为答案。正如我所看到的,你只需在问题和答案之间加上一层。事情是在一个更复杂的结构,这将导致许多“层对象/数据集”。你得到一个额外的对象/每个答案。在答案中没有与语言相关的字段时该怎么办?像体重。你有重复的条目,对吧?仍然想着你的想法:) – whereismydipp 2012-02-24 02:27:13
在这种情况下,你会在公共表中的重量。很像oop概念。你需要另一个表table4(id,fk_qqid,common_fields .....)。对? – ligerdave 2012-03-09 19:58:08