次のようなテーブルがある場合
CustomerAddress(CustomerId, AddressId)
int 自動インクリメントなど、追加の主キーが必要ですか? または、両方の列を主キーとして設定するだけで十分でしょうか?
前提: 削除するときは、customerId だけで削除し、customerId と AddressId の両方で削除することはありません
次のようなテーブルがある場合
CustomerAddress(CustomerId, AddressId)
int 自動インクリメントなど、追加の主キーが必要ですか? または、両方の列を主キーとして設定するだけで十分でしょうか?
前提: 削除するときは、customerId だけで削除し、customerId と AddressId の両方で削除することはありません
これはのようですjoin table
。この場合、依存オブジェクト間でカスケード削除が行われます。たとえば、顧客が削除されると、その顧客customerAddress
に属するすべてのesも削除されます。
主キーを保持することをお勧めします。今は役に立たなくても、将来役に立つかもしれません。組み合わせcustomerid
で、のaddressid
ような新しいフィールドを持つことができますcurrent_address_flag
。そして、DBシステムによってほとんど操作されるフィールドを作成するだけです。