在表中创建一行唯一的行

时间:2012-04-18 21:44:54

标签: database

是否可以在数据库表中创建一行唯一的?如果是这样的话?我知道你可以创建一个独特的字段,例如'John'在名称字段中不能出现两次。但是,如果我有类似的东西呢?

name: John
id: 1
foreign_key: 1

name: John
id: 2
foreign_key: 1

在这种情况下它会很好,因为它们是相同但不同的。

这可以防止这种情况:

name: John
id: 1
foreign_key: 1

name: John
id: 1
foreign_key: 1

很难证明,因为明显的答案是使foreign_key独一无二,但在我的情况下,这是一个多对多的关系,所以ID或外键可能出现很多次,但不应该总是有相同的数据列。

我应该这样做:

id: 1
fKey: 2
afKey: 3

id: 1
fKey: 3
afKey: 3

但是当fKey和afKey在两行中匹配时不会像:

id: 1
fKey: 2
afKey: 3

id: 1
fKey: 2
afKey: 3

1 个答案:

答案 0 :(得分:2)

要使行唯一,您可以将所有3列都设为复合主键。

http://dev.mysql.com/doc/refman/5.0/en/multiple-column-indexes.html