我在php中有2个表单用于添加供应商和客户。在这些表格上,我可以添加供应商或客户的联系方式。现在,由于1个供应商或1个客户可以有多个联系人,我在桌面联系上制作了外键。但问题是我有一个联系表,结构如下:
ID | telefon | name | mail | type_fk | supplier_fk_id | customer_id_fk
------------------------------------------------------------------------------
1 | 123 | john | mail | 1 | 23 | NULL
2 | 123234 | julie | gfdh | 3 | NULL | 45
所以基本上,我希望将它存储在一个表中,而现在我不确定这是不是一个好主意。因为当我添加客户联系人时,我在supplier_fk_id中有NULL值,并且对于供应商而言,但在customer_fk_id中也是如此。我有更新和删除时的外键 - 级联,因为我希望删除客户/供应商时删除这些联系人。如果我删除数据库中的外键,我将没有数据库端检查我想要的。但我得到这样的错误:
Error
Error inserting:
Cannot add or update a child row: a foreign key constraint fails
(`testbase`.`pro_contact`, CONSTRAINT `supplier_fk_id` FOREIGN KEY (`supplier_fk_id`)
REFERENCES `pro_supplier` (`supplier_id`) ON DELETE CASCADE ON UPDATE CASCADE)
任何建议都将不胜感激......
答案 0 :(得分:0)
我认为ON DELETE SET NULL
和SUPPLIER/CONTACTS
使用ON DELETE CASCADE
根据您的决定CUSTOMER/CONTACTS
{{1}}或反之亦然