0

我有以下内容:

create table dbo.Packs
(
  Id int identity not null
    constraint Packs_Id_PK primary key clustered (Id)
);

create table dbo.Files
(
  Id int not null  
  Data varbinary (max) filestream null
    constraint Files_Data_DF default (0x),  
  [Key] uniqueidentifier rowguidcol not null
    constraint Files_Key_U unique,      
  Mime nvarchar (200) not null,
    constraint Id_Mime_PK primary key clustered (Id, Mime)
) filestream_on [STORAGE];

alter table dbo.Files
add constraint Files_Id_FK foreign key (Id) references dbo.Packs(Id) on delete cascade on update cascade;

我正在寻找表格拆分。所以:

  • 文件 ID 与包 ID 相同。
  • 一个包可以有一个或多个文件。每个文件都有不同的 mime。
  • 文件中的 PK 将根据其 ID 和 MIME 创建。所以这是独一无二的。

基本上,pack 可以有以下几行:

包装
编号
1
2

文件如下:

文件
ID Mime
1 image/jpg PK = (1, image/jpg) (PACK ID = 1)
1 image/gif PK = (1, image/gif) (PACK ID = 1)
2 image/jpg PK = (2,图片/jpg)(包 ID = 2)

文件 ID 与其关联的包 ID 相同。

谢谢你,米格尔

4

1 回答 1

0

如果每个文件的“Mime”值不同,则“Mime”应声明为 UNIQUE。如果“Mime”是唯一的,那么集合 {Id, Mime} 也是唯一的。

于 2012-12-10T13:05:07.273 回答