表有多种语言

时间:2009-06-13 17:29:57

标签: sql-server localization foreign-keys

我想在MSSQL数据库中存储多个文本翻译。

例如一个带有列

的表格产品
  • 产品编号
  • ProductPrice
  • ProductNameId
  • primairy key = ProductId

以及包含产品名称

的表格
  • 编号
  • 语言
  • 名称
  • primairy key = Id and Language

如何创建外键以将Product.ProductNameId链接到ProductName.Id

2 个答案:

答案 0 :(得分:0)

我认为最合适的pk-fk关系是Product表上的ProductId和ProductName表中的ProductId(不带语言)。 Product表上的字段是pk,ProductName表中的字段是fk。这将确保PeoductName表中没有与ProductName表中的记录不匹配的记录。

如果您希望类似地对待语言,则可以使用LanguageId字段创建语言表。然后,在ProductNames表中创建一个LanguageId字段,并将其设为fk。

检索产品信息时,在ProductId字段中加入Product和ProductName,然后在WHERE子句中指定LanguageId。

答案 1 :(得分:0)

我将ProductNames表更改为:

Id
ProductId
Language
Name

有了这些限制:

  • Id上的主键
  • ProductId上的外键
  • 对(ProductId,语言)的唯一约束