我有一张桌子Page
。此表中的每条记录都有一个主要ID。
现在,我有一张表照片,有:
id
。idPage
指的是一个页面。我需要表Photos
中的一种键:所以,当我在表格上添加id
和idPage
两次相同的记录时,它不会添加它两次。
我知道在MySql中是UNIQUE
密钥。什么是SQL Server?我该如何创建呢?
答案 0 :(得分:0)
如果您的ID是主键,则它必须已经是唯一的,并且您将无法在多个页面上拥有相同的照片。您可能希望连接表PhotosPages的PK为(idPhoto,idPage),而不是将idPage直接存储在Photos表中。
或者,您可以在(idPage,id)上创建unique index。这可能是合适的,因为idPage是页面的外键,并且索引肯定会加速您将要执行的任何连接。 unique constraint是另一种可能性,但在我看来,索引更有用。
答案 1 :(得分:0)
在Photos表上,将id和idPage一起用作复合键。这样可以防止重复。
答案 2 :(得分:0)
我认为您正在寻找CONSTRAINT UNIQUE
,因为默认情况下主键id
是唯一的,所以您需要保留两个组合id
和pageid
添加到pageid
和CONSTRAINT UNIQUE
。对于将id
和pageid
设置为复合键,这将是等效的。