我目前正在开发一个具有可空外键的模式。基本上,这就是我想要实现的:
给定:
表1:
game:
id
observer_id
starts_on
ends_on
type
表2:
observer:
id
game_id DEFAULT NULL
starts_on
ends_on
type
FOREIGN KEY (`game_id`) REFERENCES `game`(`id`) ON DELETE SET NULL
现在,我想要做的是-如果我有一个对observer
的引用,我想复制作为初始值并更新observer
表中的级联ends_on
,ends_on
和type
字段,但是如果game_id
是null,我希望上面提到的字段有一个独立值。在mysql中使用IF
可以实现这样的事情吗?或者我应该在模型文件中实现逻辑吗?
发布于 2018-06-09 03:52:07
FOREIGN KEYs
只能做有限数量的事情。一旦你超越了它们,你就应该在你的应用程序代码(或存储过程或...)中构建自己的事务。去做更复杂的事情。
我觉得这是更安全的路线,因为你确切地知道你需要什么,而不需要强迫FKs去做。
https://stackoverflow.com/questions/50639049
复制相似问题