繁体   English   中英

插入后如何检查另一个表中的插入

[英]How to check insertion in another table after insertion

我有两个实体propositiondepartment 命题必须针对至少一个部门(1-N),而一个部门可以针对0-N个命题。

所以在我的数据库,我有3个表: PROPOSITIONTARGETDEPARTEMENT

我尝试找到一种方法来确保在PROPOSITION插入一个命题之后,在TARGET插入一个条目。 换句话说,我想确保(1-N)关系不会变成(0-N)关系。

有办法做到这一点与触发器? 还是应该更改数据库的结构?

提前致谢

[编辑]解决方案:

触发器无法完成任务,因为TARGET的插入取决于用户异步输入的值。 例如,如果命题1以部门2和部门3为目标,则在我的表中,数据为:

PROPOSITION
1

TARGET
1 2
1 3

DEPARTMENT 
1  
2 
3

触发方式:在插入内容后,在PROPOSITION上设置一个触发方式。 我们做什么 ? 等待插入TARGET吗? TARGET为部门插入默认值? 因此,触发PROPOSITION不会起作用。

我发现的唯一解决方案是重组数据库:

  • 我在命题中添加了字段DEPARTMENT_NUMBER ,该字段不能为NULL。
  • 我在TARGET表上设置了一个触发器,以在插入之前检查该命题尚未针对其属性中的部门进行检查。

该方法减慢了数据库速度,但可以确保遵守(1-N)关系

在我的观点中,执行此操作的最佳方法是在Proposition上创建一个触发器,该触发器插入到Target中。

检查此链接,它应该使您入门。 http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM