当您有子表和父表时,我知道如果我将使用级联选项,当我从父表中删除某些行时,它将删除相应的子行。
但是,当您首先从子表中删除某些行时,这也会起作用吗?是否将删除父表中的相应行?有可能吗?
编辑:我有一个游戏数据库,其中包括:
- playerTbl (PK = PlayerID)
- GamesTbl (PK = GameID)
- GameMovesTbl (PK = MoveID,FK = GameID)
现在当用户开始游戏时,他必须注册到游戏中(他可以只是他自己或玩游戏的组的一部分)
现在我想做的是当某个游戏中只有一个玩家时:当用户想从数据库中删除这个玩家时,它会从玩家Tbl中删除记录,适当的游戏和游戏移动..
编辑:现在,playersTbl 和 gamesTbl 彼此陌生。所以我看到的最好的解决方案是创建一个连接这些表的新表。现在我的数据库看起来像:
- PlayersTbl (PK = PlayerID)
- JoinTbl (FK = PlayerID, GameID)
- GamesTbl (PK = GameID)
- GameMovesTbl (PK = MoveID,FK = GameID)
因此,如果我使用 cascade 选项,则意味着:
- PlayersTbl 是 JoinTbl 的父表
- JoinTbl 是 GamesTbl 的父表
- GamesTbl 是 GameMovesTbl 的父表
但是,每当用户删除某个播放器时,它只会从 PlayersTbl 和 JoinTbl 中删除。所以我的问题是这些表之间的最佳关系是什么,以便删除选项可以正常工作?