如何在ORM中使用多语言数据库模式?

art*_*olk 13 database orm multilingual

美好的一天!

我正在寻找实现多语言数据库模式的最佳方法,我使用的方法与此处相同:多语言数据库设计的最佳实践是什么?(一个表有语言中性数据,一个表用于所有翻译).它似乎很好,干净,并没有限制可能的语言数量.

但我想使用一个简单的ORM(如C#中的LINQ,PHP等出口),其中每个表都映射到实体类.这可以工作,但查询变得更加复杂.

可能有一些特殊技术可以使用这样的DB shema和ORM吗?或者我可以从支持更复杂映射的更复杂的ORM中受益?

提前致谢!

Fro*_*y Z 20

对所有翻译仅使用一个表可能会导致任何操作的严重性能和复杂性问题(选择/插入/更新/删除); 试着去了解我的意思.

然后我将采用以下方法(每个"可翻译"对象两个表),这似乎是性能,复杂性和维护问题之间的良好平衡.

product
  - id (PK)
  - number1
  - number2
  - date1
  - date2
  ...

product_i18n
  - id (PK)
  - product_id (FK)
  - language_id (FK)
  - string1
  - string2
  ...

language
  - id (PK)
  - name
Run Code Online (Sandbox Code Playgroud)

使用Propel ORM(PHP)检查它是如何完成的:http://propelorm.org/blog/2011/01/11/propel-gets-i18n-behavior-and-why-it-matters.html

HTH