我有两个实体proposition
和department
。一个命题必须至少针对一个部门(1-N),一个部门可以成为0-N命题的目标。
所以在我的数据库中,我有3个表:PROPOSITION
,TARGET
和DEPARTEMENT
。
我试图找到一种方法来确保在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
。 TARGET
表格上设置了一个触发器,以便在插入之前检查该命题尚未针对其属性中的部门。 该方法减慢了数据库的速度,但确保了(1-N)关系得到尊重
答案 0 :(得分:0)
在我看来,这样做的最好方法是在Proposition上创建一个插入Target的触发器。
检查此链接,它应该让您入门。 http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html