多语言表 - 复合键是要走的路吗?

时间:2012-04-17 03:21:05

标签: sql composite-primary-key

有很多项需要翻译,我有三张桌子。 LanguagesFruitsFruitNames

这是我将使用的代码(在ms SQL中)

CREATE TABLE [FruitNames] (
    [LanguageId] INT NOT NULL ,
    [FruitId] INT NOT NULL ,
    [name] NVARCHAR( 100 ) NOT NULL ,
    FOREIGN KEY (LanguageId) REFERENCES Languages(id),
    FOREIGN KEY (FruitId) REFERENCES Fruits(id),
    PRIMARY KEY ([LanguageId],[FruitId])
)

假设我永远不会为一个项目要求两个相同语言的名称,使用复合键是否有优势?

1 个答案:

答案 0 :(得分:1)

对我来说,似乎是一个很好的候选复合键。我不能说整体的可扩展性,但如果你所翻译的只是水果的名字,这应该没问题。