0

我有一张桌子Page。此表中的每条记录都有一个主 ID。

现在,我有一张照片,其中有:

  • id对于每条记录。
  • idPage它指的是一个页面。

我需要表格中的一种键Photos:所以,当我在表格 Photo 上添加相同的记录时,ididPage两次,它不会添加两次。

我知道在 MySql 中是UNIQUE关键。SQL Server 中有什么?我该如何创建它?

4

3 回答 3

0

如果您的 id 是主键,则它必须已经是唯一的,并且您不能在多个页面上拥有同一张照片。您可能想要一个 PK 为 (idPhoto,idPage) 的联接表 PhotosPages,而不是将 idPage 直接存储在 Photos 表中。

或者,您可以在 (idPage,id) 上创建唯一索引。这可能是合适的,因为 idPage 是页面的外键,拥有索引肯定会加速您将执行的任何连接。唯一约束是另一种可能性,但我认为索引更有用。

于 2012-04-08T16:28:30.353 回答
0

在您的 Photos 表上,将 id 和 idPage 一起用作复合键。这将防止重复。

于 2012-04-08T16:28:38.003 回答
0

我认为您正在寻找CONSTRAINT UNIQUE,因为默认情况下主键id是唯一的,所以您只需要保留这两个组合idpageid添加到pageida CONSTRAINT UNIQUE。这相当于将idandpageid一起设置为Composite key

于 2012-04-08T16:29:03.393 回答