首页 > 解决方案 > Mysql注释表与多表相关

问题描述

由于基本上任何东西都可以有评论,我不确定如何将关系转移到我的数据库设计模式中。

    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 约束,这应该会导致正在删除的视频也删除与其相关的评论。

标签: mysqlsqldatabaserelational-database

解决方案


我认为你可以创建commentable_idcommentable_type让你知道这个 id 属于哪个表,这部分

此外,应该有一个 ON DELETE CASCADE 约束,这应该会导致正在删除的视频也删除与之相关的评论

我不知道该怎么做,我想如果我处于你的位置,我会在删除视频之前使用代码处理它,我会检查是否有任何评论并将其删除。


推荐阅读