0

このテーブルを使用するアプリケーションが正しく機能するためには、3 つの必須レコードが存在する必要があるというテーブルがあります。たとえば、これがリンクされたリスト ツリー テーブルである場合、私の場合、3 つの最上位グループが存在する必要があります。このテーブルの使用を開始すると、将来のすべてのグループは常にグループの下にある必要があり、他の最上位グループを作成することはできません。

Group TL1
   Group A
       Group AA

Group TL2
   Group B
   Group B1
      Group B1B

Group TL3
   Group C

注 グループ TL1、TL2、および TL3 は常に存在する必要があります。存在しないと、アプリケーションの要件に対してデータの整合性が損なわれます。

必要な最上位グループを挿入/保護する最良の方法は何ですか?

私が持っている 1 つのアイデアは、テーブルの作成時に必要なデータを挿入し、必要なデータの存在をチェックする関数を用意することです。ただし、過剰で効率が悪いように見えるため、常にそれらの存在を確認したくはありません。

返信をお待ちしております。

4

1 に答える 1

0

データベースに応じて、次のようなことを試すことができます。

1) 外部キー制約が壊れている場合に更新/削除を防止する - 行 A が重要な行を外部キーで参照している場合、データベースが制約をチェックして防止するため、重要な行を削除することはできません。

2) 削除/更新/挿入 (必要に応じて) の前に実行されるトリガーを使用すると、重要な行が存在することが保証され、これに違反する場合はアクション (または挿入) が防止されます。

使用するデータベースのフレーバーが何であれ、オプションを調べます。

于 2013-02-06T03:50:26.350 に答える