メニューのメタデータを管理する小さなアプリを作成しています。AMenuは に接続され、App(オプションで) 別の にも接続されますMenu(したがって、サブメニューを定義します)。したがって、接続は次のようになります: に接続Menu.AppIdしApp.Id、次にMenu.ParentIdに接続しMenu.Idてサブメニューを定義します。
しかし、これにより、一貫性のないデータを挿入できます。
INSERT INTO Menu (Id, ParentId, AppId, Desc) values (1, NULL, 25, 'Top Menu')
INSERT INTO Menu (Id, ParentId, AppId, Desc) values (2, 1, 36, 'Sub Menu')
ここで、アプリ#36のサブメニューは、アプリ#25 (別のアプリ)のトップ メニューの下にある必要があると述べました。
Sub MenuをTop Menuの子として挿入するときに、アプリを #25 にする必要があることを確認する制約を定義する方法はありますか (トリガーはオプションではありません)。
(もちろん、これはユーザー インターフェイスで管理しますが、モデルを保護する方法も探しています)。
ありがとうございました、