我在分层查询中遇到问题。我有一个这样的自引用表:
id parent_id name size
-----------------------------------------
1 null Ship1 50
2 1 cabin1 10
3 1 cabin2 30
4 3 shelf1 5
5 3 shelf2 20
6 null Ship2 50
7 6 cabin1 10
8 6 cabin2 30
9 7 shelf1 15
我需要在数据库中添加一个触发器,以防止用户添加超过该船剩余大小的客舱。
例如,在表中,对于 1 号船,我们的总尺寸为 50。存在 2 个舱室,消耗 40 的尺寸。所以现在我们剩下 10 个作为可用空间。我们应该不能再添加一个大小>10 的客舱。任何 <= 10 都可以。小木屋和货架也是如此。一个客舱内所有货架的总尺寸不应超过分配给该客舱的总尺寸。
表中可以有任意数量的船舶条目(这是根)。
我知道分层查询,我可以遍历一棵树,但我发现很难收集我对这个问题的想法。谁能指出我正确的方向,以便我可以成功添加该触发器?