リレーションシップの設定(連鎖削除)
前回生徒を削除しても家族が削除されないという現象が発生しました。生徒と家族を連動して削除するためにはリレーションシップを設定する必要があります。このリレーションシップはテーブル設計時に設定しておく事も出来ますが、必須ではありません。便利な面もあるのですが、逆に設定しておくと実際の開発現場では邪魔になる面もあります。例えばデータをコンバートするときなど、一時的にテーブル間で矛盾した状態を作らなければならないときがあります。そんな時データの整合性を担保するリレーションシップが作業上の邪魔になったりします。
私の考えでは今回のように必要になった時点でリレーションシップを設定するのが実際的ではないかと思います。設定するにはまずメニューバーの「データベースツール」→「リレーションシップ」をクリックします。

テーブルの表示でT_生徒番号とT_家族を選びます。
2つのテーブルが表示されたと思いますが、そこでT_生徒番号の生徒番号からT_家族の生徒番号へドラッグすると次のウインドウが現れます。そこで「参照整合性」をチェックし、更に「レコードの連鎖削除」をチェックします。
すると、T_生徒番号とT_家族が生徒番号同士で連結され、1対多の関係にあることがわかります。
さてここでF_生徒番号を開き、削除処理を再度実行してみましょう。すると、今度は以下のような確認メッセージが出力されます。ここで「はい」を選択し、テーブルの中身を見てみましょう。
今度はT_生徒番号もT_家族も削除されていることが確認出来たと思います。
次回はいよいよフォームの最終段階として「メニューの作成」について語りたいと思います。
私の考えでは今回のように必要になった時点でリレーションシップを設定するのが実際的ではないかと思います。設定するにはまずメニューバーの「データベースツール」→「リレーションシップ」をクリックします。

テーブルの表示でT_生徒番号とT_家族を選びます。

2つのテーブルが表示されたと思いますが、そこでT_生徒番号の生徒番号からT_家族の生徒番号へドラッグすると次のウインドウが現れます。そこで「参照整合性」をチェックし、更に「レコードの連鎖削除」をチェックします。

すると、T_生徒番号とT_家族が生徒番号同士で連結され、1対多の関係にあることがわかります。

さてここでF_生徒番号を開き、削除処理を再度実行してみましょう。すると、今度は以下のような確認メッセージが出力されます。ここで「はい」を選択し、テーブルの中身を見てみましょう。

今度はT_生徒番号もT_家族も削除されていることが確認出来たと思います。
次回はいよいよフォームの最終段階として「メニューの作成」について語りたいと思います。
- 関連記事
スポンサーサイト