我正在使用本地化和SQL表创建一个应用程序。
我想知道我应该使用哪种方法来创建表格。
选项1
每个文化的一个表(帖子)和另一个(Posts_Localized)。
create table dbo.Posts
(
Id int identity not null,
Created datetime not null
);
create table dbo.Posts_Localized
(
Id int not null,
[Culture] int not null
constraint CK_Culture check ([Culture] in ('1', '2', '3')), // EN, FR, DE
Title nvarchar (200) not null
);
选项2
所有数据的一个表(帖子)...每个记录都有一个KEY。
版本EN,PT,FR将共享一个KEY,因为它是相同帖子的不同版本。
create table dbo.Posts
(
Id int identity not null,
Created datetime not null,
[Culture] int not null
constraint CK_Culture check ([Culture] in ('1', '2', '3')), // EN, FR, DE
Title nvarchar (200) not null,
[Key] uniqueidentifier not null
);
我看到第二个的好处是因为:
联接会更少;
如果我确定列可能会从常见变为不常见,我将无需更改数据库架构......
您怎么看?
谢谢你, 米格尔