是否可以在数据库表中创建一行唯一的?如果是这样的话?我知道你可以创建一个独特的字段,例如'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
答案 0 :(得分:2)
要使行唯一,您可以将所有3列都设为复合主键。
http://dev.mysql.com/doc/refman/5.0/en/multiple-column-indexes.html