現在地: Visual LANSA 開発者ガイド > 1. アプリケーション、フィールド、データベース、リポジトリの概要 > 1.6 アプリケーション・データベースの作成 > 参照整合性の例
参照整合性の例

人事管理システムのアプリケーション・データベースを構成する、部門、部課、社員の各テーブルについては、次のような規則が必要です。

1.  部門テーブルの部門コードは、部課テーブルから参照されている場合、削除できません。例えば部門コード「ADM」のレコードを削除するためには、部課コードのどのレコードにも、所属する部門のコードとして「ADM」が設定されていないことが必要です。そうでない場合、どの部門にも所属しない部課ができてしまいます。

2.  部課テーブルのレコードには、所属する部門のコードとして、部門テーブルに登録されているものしか設定できません。例えば部門テーブルに「XYZ」という部門コードが登録されていなければ、「XYZ」に所属する部課を追加することはできないのです。

3.  部課テーブルの部課コードは、社員テーブルから参照されている場合、削除できません。例えば部課コード「01」のレコードを削除するためには、社員テーブルのどのレコードにも、所属する部課のコードとして「01」が設定されていないことが必要です。そうでない場合、所属部課のない社員ができてしまいます。

4.  社員テーブルのレコードには、所属する部門および部課のコードの組み合わせとして、部課テーブルに登録されているものしか設定できません。例えば部課テーブルに「XYZ」部門の「01」部課が登録されていなければ、ここに所属する社員を追加することはできないのです。

参照整合性に関する規則を定義するためには、業務内容やそのデータ・モデルを理解しておく必要があります。例えば、部門テーブルと社員テーブルとの間に、参照整合性の規則は必要ありません。社員テーブルは部門テーブルではなく部課テーブルを参照しているからです。社員データは部課テーブルの内容に依存しているわけですが、間接的に部門テーブルの内容も参照していることになります。例えば「ABC」部門に部課を作らなければ、「ABC」部門のある部課に所属する社員を追加することはできません。