如果我没有设置任何删除或更新约束
,那么拥有外键关系
有什么好处?
假设我有一个用户可以发布转售商品的表格。
item_id item_product_id item_title other_fields
1 1 New TV for sale ...
1 1 Old TV for sale ...
1 2 Radio for sale ...
产品表将是:
product_id product_name
1 TV
2 Radio
现在,如果从产品表
中删除产品
,我不希望这些项目也被删除。用户可以看到他的项目的产品不再存在并且可以选择另一个最接近的合适的产品。所以我的问题是 - 如果这是我所拥有的结构和逻辑
,那么通过使用外键
链接项目和产品表是否有任何优势?
或者,如果项目中有外键
条目,我是否可以从产品中删除?
最佳答案
一个优点是您的 RDMS 一开始就不允许您插入无效数据。如果没有 ID 为 5 的产品,那么您将绝对无法为其创建项目(无论是从脚本还是从 mysql 命令行)。这属于数据完整性的标题。
此外,您可能值得查看 this question
关于php - 不使用 ondelete 或 onupdate 时外键的优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24663421/