私はこのようなテーブルを持っています:
something
a [INT]
b [INT]
c [INT]
...ここで、 a、b、およびcは、3 つの異なるtable.idを指す個別の外部キーです。すべてのレジストリを一意にしたいので、このすばらしい回答を読んだ後、次の方法で新しいインデックスを作成する必要があると思います。(私の場合) IGNORE INSERTS を実行します。
しかし、ご覧のとおり、各列に 1 つの KEY があり、3 つすべてを含む別の UNIQUE INDEX があります。これは普通のことですか?私には奇妙に思えますが、私はそれを見たことがありません。UNIQUE INDEX(a, b, c)
質問する
65 次
2 に答える
1
複数のインデックスに列を含めることは完全に正常で合理的です。ただし、(a、b、c)の組み合わせで行を一意に識別するのに十分な場合は、ここPRIMARY
ではインデックスではなくインデックスが必要なようUNIQUE
です(技術的にはほとんど違いはありませんが、意味的にはより良い選択かもしれません)。
于 2013-01-29T11:15:21.457 に答える
-1
何か (a、b、c) が一意のインデックスの必要性を無効にする場合は、主キーを作成します。主キーがSomething(a, b)で、Unique Index (a, b, c)が必要な場合、追加のUniqueインデックスは理にかなっています。ただし、3 つの列はすべて Foreignkey であるため、主キー インデックスが必要です。
于 2013-01-29T11:18:53.423 に答える