2010-06-19 31 views
11

美好的一天!如何在ORM中使用多语言数据库模式?

我正在寻找实现多语言数据库模式的最佳方法,我使用的方法与此处的方法相同:What are best practices for multi-language database design?(一个表格具有语言中性数据,另一个表格用于所有翻译)。它似乎很好,很干净,并且不限制可能的语言数量。

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

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

在此先感谢!

回答

18

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

然后我会去下面的方法,这似乎在性能,复杂性和维护问题的良好平衡(每“翻译”对象的两个表)。

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

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

language 
    - id (PK) 
    - name 

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

HTH

+0

谢谢,同样的DB计划时,我使用的,但可惜的是,我使用的ORM(LINQ2SQL在.NET和出口对于PHP)不直接支持这样的场景。我会定期看看Propel。 – artvolk 2011-01-21 09:01:30

+0

在这种情况下你会怎么做一个后备? – GorillaApe 2012-05-01 10:13:13

+0

为什么你需要一个后备? – 2012-05-01 11:06:36

相关问题