我已经阅读了Bill Karwin关于单表继承的一些答案,并认为这种方法对我正在考虑的设置很有用:
Playlist
--------
id AUTO_INCREMENT
title
TeamPlaylist
------------
id REFERENCES Playlist.id
teamId REFERENCES Team.id
UserPlaylist
------------
id REFERENCES Playlist.id
userId REFERENCES User.id
PlaylistVideo
-------------
id
playlistId REFERENCES Playlist.id
videoId REFERENCES Video.id
所有CASCADE
选项都设置为在删除DELETE
a 时可以正常工作Playlist
,但是,如果 a User
orTeam
被删除会发生什么?
IE。如果 aUser
被删除,则 in 中的行将被删除,但 in和UserPlaylist
中的引用行将保留。我考虑过强制执行此操作,但无法知道删除请求是因为被删除还是被删除而产生的。Playlist
PlaylistVideo
TRIGGER AFTER DELETE
Playlist
User
在这种情况下执行完整性的最佳方法是什么?
编辑(提供 ERD)