サプライヤーと顧客を追加するために、php に 2 つのフォームがあります。これらのフォームでは、サプライヤーまたは顧客の連絡先を追加できます。ここで、1 つのサプライヤまたは 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
基本的には、それを 1 つのテーブルに格納したいのですが、今のところ、それが良いアイデアだったかどうかはわかりません。顧客の連絡先を追加すると、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)
アドバイスをいただければ幸いです...