我正在编写一个小应用程序来管理菜单的元数据。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')
这里我只是说App #36的Sub Menu应该在App #25(另一个 App)的Top Menu下。
有没有一种方法可以定义约束以确保当我将Sub Menu作为Top Menu的子项插入时,应用程序必须是#25(触发器不是一个选项)?
(当然我会在用户界面中管理它,但我也在寻找一种方法来保护模型)。
谢谢,