Database design 如何转换数据库模型的字段?

Database design 如何转换数据库模型的字段?,database-design,Database Design,我在web应用程序中有一些表格/模型,这些表格/模型将包含多语言内容。 例如,一所大学,其描述为默认语言English,用户希望,如果对象的字段被翻译,他可以在另一种语言中看到相同的信息。 如果只有几种语言,那么我只会添加像name_en和name_de之类的字段,但是语言的数量不是固定的,所以这会造成混乱。 我也可以用翻译后的数据创建一个新对象,但外键不起作用,只能翻译部分字段,这样就可以创建重复的数据。 将翻译存储在文件中并使用gettext或类似的东西也不是一个选项,因为对象字段可以由网站

我在web应用程序中有一些表格/模型,这些表格/模型将包含多语言内容。 例如,一所大学,其描述为默认语言English,用户希望,如果对象的字段被翻译,他可以在另一种语言中看到相同的信息。 如果只有几种语言,那么我只会添加像name_en和name_de之类的字段,但是语言的数量不是固定的,所以这会造成混乱。 我也可以用翻译后的数据创建一个新对象,但外键不起作用,只能翻译部分字段,这样就可以创建重复的数据。 将翻译存储在文件中并使用gettext或类似的东西也不是一个选项,因为对象字段可以由网站用户翻译,而不仅仅是开发人员/管理员

设计/构建这样一个数据库的最佳方式是什么?从翻译后的数据进行搜索也不应该太复杂,因为它不需要创建复杂的连接,这会使查询速度变慢


我正在使用PostgreSQL和Ruby of Rails,但我不是在寻找技术解决方案,而是寻找如何设计它的总体思路。

不要重新发明轮子。安装插件,然后就可以了。当然,如果您愿意,还可以使用转换表以及连接来研究它是如何工作的。不过,有一个fork使用主表作为默认语言。

Ok,似乎已经足够好了,尽管我问过如何为它设计数据库。将使用model_translations插件,并对其进行了更改,以便我可以为整个应用程序和模型设置单独的区域设置,以防有人想要编辑模型数据,如果用另一种语言编辑对象,则整个站点和编辑表单语言将发生更改,这将是不好的