私は次のものを持っています:
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 と同じになります。
- パックには、1 つまたは複数のファイルを含めることができます。各ファイルには異なる MIME があります。
- ファイル内の PK は、その ID と MIME から作成されます。これはユニークです。
基本的に、pack には次の行を含めることができます。
パック
ID
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 と同じです。
ありがとう、ミゲル