id
(自動インクリメント)をMySQLの主キーの2番目の列として使用できますか?下記の表order
を参照してください。MySQLの主キーの2番目の列にID(自動インクリメント)を持たせることはできますか?
私の考えは、MySQLは、主キーインデックス(CUSTOMER_ID、ID)を介してorders
にアクセスすることが、私はcustomer_id
.Thanks
Customer
+-------------+
| id (autoinc)| --> primary key
|- - - - - - -|
| name |
| address |
+-------------+
|
|
|
A
Order
+------------------+
| customer_id (fk) | --- primary key
| id (autoinc) | --- primary key
|- - - - - - - - - |
| date |
+------------------+
テーブルのために使用されるデータベースエンジンに依存して、InnoDBのようなものでは、レコードを密接に保存するのに役立ちますが、それは私にとっては(時期尚早な)最適化のように聞こえます。あなたは 'いつ、id'のPKから恩恵を受ける可能性が高いのでしょうか(おそらく冗長と見なすことはできますが)。 – Uueerdo
私はDB2で作業しましたが、ほとんどの場合、パフォーマンスのために上記の 'order'テーブルのように、' customer_id'だけで注文テーブルを照会するので、99%の時間がかかります。しかしもちろん、これは大きなボリュームとの違いになります。私はMySQLがそれとは違うか、それとも自動的に 'customer_id'の外部キーのインデックスを作成するのでしょうか? – user3489502
ええ、すべてのFKフィールドは、関係の両側で索引付け(または索引を開始)する必要があります。 – Uueerdo