由于基本可以在任何内容下进行注释,所以我不确定如何将该关系转换为数据库设计模式。
CREATE TABLE comments (
id INT(11) NOT NULL PRIMARY KEY,
content TEXT NOT NULL,
authorId INT(11) NOT NULL,
FOREIGN KEY(authorId) REFERENCES users(id)
);
如您所见,注释通过将作者的ID存储在数据集中,也确实与users表有关系。但是,评论本身可以在帖子或视频下面,这是两个单独的表格。 这是我的问题:我应该为两个关系(video_comments和post_comments)创建一个联结表,还是应该以其他任何方式创建它。另外,应有一个ON DELETE CASCADE约束,该约束应导致视频被删除,并删除与此视频相关的评论。
答案 0 :(得分:0)
我认为您可以创建commentable_id
和commentable_type
来让您知道此ID属于哪个表
至于这部分
此外,应设置ON DELETE CASCADE约束,该约束应导致视频被删除,并删除与其相关的评论
我不知道该怎么做,我想如果我在您的位置,我会在删除视频之前使用代码进行处理,然后检查是否有任何评论并将其删除。
答案 1 :(得分:0)
这是您可能要考虑的另一种方法:
for/after delete triggers
并张贴表格,在
使用魔术表中的信息触发。通过这种方式,您不必创建新表或使用级联对象。这只是我的假设,请让我知道这是否对您有意义。