多语言数据库与实体框架4指导

我们正在创建一个大型电子商务数据库,需要允许多种语言的数据。 例如,产品表需要一个或多个翻译名称,描述,MetaTitle,MetaKeywords,MetaDescription等。

从关系数据库设计的角度来看,有几种方法可以实现这一点。 但实体框架4增加了一些限制,性能是一个值得关注的问题。

与多语言数据库设计类似的问题

以下是我们正在考虑的一组示例表:

[Product]
- Id (PK)
- CreateDate
- NamePhraseId (FK)
- DescriptionPhraseId (FK)
- Price
- ...

[Phrase]
- id (PK)
- Invariant

[Translation]
- id (PK)
- PhraseId (FK)
- LanguageCulture (Example: en-US)
- Translation

我们也可以添加一个LanguageCulture查找表。

这种方法与其他方法一样有优点和缺点。 我们不希望为每个可能需要翻译的表列创建额外的表格(例如没有ProductName,ProductDescription表格),因为这会使我们的数据模型过大。

在上例中,产品名称将包含零个或一个带有一个或多个翻译的短语。 我记得,实体框架需要1对1的关系在表上具有相同的主键,我不知道这是0或1关系的情况,但这可能是上述方法的一个缺陷。

我很难找到有关实体框架和多语言数据库/模型设计指南的良好信息。 我会大力提倡建议和指导,强调良好的设计和最佳的性能。

提前致谢!


鉴于EF4的POCO支持,我想说你的数据库的设计应该与EF有关,并且更多地与良好的多语言设计有关。

根据该文件,EF支持“零或一个”关系。 只需使Translation表中的PhraseId为空,并且应该导致0..1的关系。

链接地址: http://www.djcxy.com/p/6385.html

上一篇: Multilingual Database with Entity Framework 4 Guidance

下一篇: Copy values from object1 to object2 using AutoMapper