0

データベース テーブルの行を一意にすることはできますか? もしそうなら、どのように?フィールドを一意にできることはわかっています。たとえば、'John' が名前フィールドに 2 回表示されることはありません。しかし、次のようなものがある場合はどうなりますか:

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

ただし、次のような 2 つの行で 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 に答える