4

テーブルを3つ作りました。
Table1=users。列名はuserid (auto_increment)usernameです。
Table2=趣味。列名はHobbyid (auto_increment)Hobbynameです。
Table3=users_hobbies . 列名はFK_useridFK_hobbyidです。

新しいユーザーとその趣味を html フォームから登録するたびに、テーブル 1 とテーブル 2 から生成された 対応するユーザー ID と hoobyidを選択し、
クエリを使用してそれらをテーブル 3 に挿入します

では、テーブル 1 と 3、およびテーブル 2 と 3 の間にリレーションシップを作成すると、リレーションシップは何に使用されるのでしょうか。
対応するユーザー ID と趣味 ID は、クエリを使用せずにテーブル 3 に自動的に移動しますか?

4

1 に答える 1

10

いいえ、ユーザー ID と趣味 ID は自動的にどこにも移動しません。

関係またはむしろ制約の主なポイントは、データの整合性を強化することです。つまり、ID 2 のユーザーと ID 2 の趣味がなければ、id 2, 2 を含むエントリを users_hobbies テーブルに追加できないはずです。

この整合性を維持するために、カスケードを指定することもできます。(データベースのシステムによっては、mysql をほとんど使っていないので、よくわかりません)。

つまり、ユーザー自身が削除された場合、ID 1 のユーザーのすべての users_hobbies が削除されるように指定できます。

于 2012-06-17T16:57:34.780 に答える