【发布时间】:2009-04-21 11:16:49
【问题描述】:
MySQL 似乎没有延迟约束,直到实现的事务结束。如果是这样,在两个孩子记录中切换父母的最佳方法是什么?
例如,如果我们有一些 UI 插槽,每个用户都可以在其中放置物品。如果在 item 表中 slotid 是 FK 并且在 Items 表中的 itemId 和 slotId 列上存在唯一索引,那么应该如何在用户的插槽中切换项目?
有没有比在事务中使用 SET FOREIGN_KEY_CHECKS=0 和三个更新更好的方法呢?
[EDIT] SlotId 不可为空,也不应赋予项目始终必须位于某个插槽中 - 因此将其设置为可空意味着放弃语义正确性和重要的安全检查,只是为了使一些实现细节更容易。
【问题讨论】:
标签: mysql