我有两个表:消息和产品。 Message表中有一个sourceid,等于Product表下的ProductId。
产品有一个产品 ID (productID),用户可以向卖家发送有关该产品的消息。对于这些消息,如果它们与特定产品相关,则会为它们提供一个 sourceid,这基本上就是产品 ID。如果消息与任何产品无关,sourceid 将设置为 0。
我可以设置外键约束,每当卖家删除产品时删除消息条目,所有相关消息都将被删除。
但是,我发现所有与产品无关的消息,sourceid设置为0,都没有保存在数据库中。显然,因为没有productid = 0的产品,外键约束会立即删除消息条目(sourceid = 0)。
有没有办法在 phpmyadmin 中设置条件?如果我可以设置外键约束只在 sourceid > 0 时执行,那么系统应该可以运行。但是我不确定如何设置这个条件,或者 phpmyadmin 是否允许设置这个条件。
请帮忙。非常感谢。
最佳答案
是的,如果外键与某些消息不相关,则使 product_id 外键列可为空。当您不想引用任何产品时,存储 NULL 而不是 0。出于外键引用的目的,将忽略 NULL。
这实际上与我回答的这些过去的问题相同:
- MySQL foreign key to allow NULL? (2009)
- Foreign key or null value (2011)
关于mysql - 是否可以在 phpmyadmin 中为外键约束添加条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44793508/