【发布时间】:2015-10-01 02:42:19
【问题描述】:
正如标题所述,我正在寻找一种数据库约束,它可以确保新插入的父行始终具有至少一个子行。
假设我有一张公司表和一张文档表。业务规则是
- 每个公司可以有多个文档,所以公司表和文档表是一对多的关系;
- 每家公司必须至少有一份文件。
我想在数据库级别进行检查,以便每当创建新公司时,都必须在同一事务中插入一个文档。
有这样的限制吗?
顺便说一句,我使用 MySQL 和 JPA,所以我也很乐意使用 JPA 注释来检查是否有。
【问题讨论】:
正如标题所述,我正在寻找一种数据库约束,它可以确保新插入的父行始终具有至少一个子行。
假设我有一张公司表和一张文档表。业务规则是
我想在数据库级别进行检查,以便每当创建新公司时,都必须在同一事务中插入一个文档。
有这样的限制吗?
顺便说一句,我使用 MySQL 和 JPA,所以我也很乐意使用 JPA 注释来检查是否有。
【问题讨论】:
您需要为此使用触发器(BEFORE INSERT),但这并不是一个很好的做法。我建议直接在交易中检查它。就在插入之前,通过选择检查。触发器是可见性的噩梦。
【讨论】: