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 と同じになります。
  • パックには、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 と同じです。

ありがとう、ミゲル

4

1 に答える 1

0

各ファイルの「Mime」の値が異なる場合、「Mime」は UNIQUE と宣言する必要があります。「Mime」が一意である場合、セット {Id, Mime} も一意です。

于 2012-12-10T13:05:07.273 に答える