0

識別関係と非識別関係に関して多くの質問がありましたが、それらはすべて 1 対多の関係に焦点を当てています。以下は私の現在の理解です。間違っていたら訂正してください。

親のキーが子の PK の一部である場合、それは識別関係です。これは、親テーブルの対応するレコードがなければ子テーブルのレコードは存在できず (本は著者なしでは存在できない)、子テーブルのレコードを一意に識別するために親の PK が必要であることを意味します (明らかに、子 PK の一部)。

1 対 1 の識別関係も同様です。例として、トランスミッション テーブル、automatic_transmissions テーブル、および manual_transmissions テーブルがあります。ここで、automatic_transmissions テーブルと manual_transmissions は両方とも、トランスミッションに対して 1 対 1 の識別関係を持っています。各 automatic_transmissions テーブルと manual_transmissions テーブルには関連付けられたトランスミッションが必要であり、トランスミッション PK は、automatic_transmissions テーブルまたは manual_transmissions テーブル内の関連付けられたレコードを一意に識別できます。このアプローチが使用されるのは、automatic_transmissions テーブルと manual_transmissions テーブルの両方が多くの属性を共有していますが、それぞれに固有の属性もあるからです。

私は今まで大丈夫ですか?

ここで、1 対 1 の非識別関係を取り上げます。何、PK のないテーブル?なぜそのようなテーブルが必要なのですか?いくつかの例は何ですか? どのように使用されますか?

4

1 に答える 1

0

車のテーブルとトランスミッションのテーブルがあるとします。各車には 1 つのトランスミッションがあります。各トランスミッションは、特定の時間に 1 台の車にのみ搭載されています。ただし、同じトランスミッションが常に同じ車にあるとは限りません。車のトランスミッションが壊れて、交換しなければならないことがあります。故障した古い車からトランスミッションが取り出され、別の車に取り付けられることがあります。

クルマとトランスミッションは1対1の関係。ただし、子 (伝達) のアイデンティティは親 (車) に依存しないため、これは非識別関係です。

これは、「PK のないテーブル」を意味するものではありません。車とトランスミッションの両方のテーブルに主キーがあります。車用の PK が送信用の PK に含まれていないだけです。

于 2013-04-11T12:30:48.973 に答える