我有2種形式在PHP中添加供應商和客戶。在這些表格上,我可以添加供應商或客戶的聯繫人。現在,由於1個供應商或1個客戶可以有多個聯繫人,所以我在桌面上聯繫了外鍵。但問題是,我有1個接觸表,結構是這樣的:NULL值與外鍵
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)
任何意見,將不勝感激......
你想從哪個表中刪除記錄? – Amir 2013-05-13 13:34:53
如果供應商或客戶被刪除我想要他的聯繫人被刪除 – enigmaticus 2013-05-13 13:35:35
IIUC,你需要一個供所有人(供應商和消費者)使用的表格和一個供聯繫人使用的表格(哪個供應商知道哪個消費者,反之亦然)與CASCADE ON DELETE。糾正我,如果我錯了 – draxxxeus 2013-05-13 13:39:57