0

是否可以使数据库表中的一行唯一?如果有怎么办?我知道您可以使字段唯一,例如“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
4

1 回答 1

2

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

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

于 2012-04-18T21:47:29.880 回答