mysql - 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 约束,这应该会导致正在删除的视频也删除与其相关的评论。
解决方案
我认为你可以创建commentable_id
并commentable_type
让你知道这个 id 属于哪个表,这部分
此外,应该有一个 ON DELETE CASCADE 约束,这应该会导致正在删除的视频也删除与之相关的评论
我不知道该怎么做,我想如果我处于你的位置,我会在删除视频之前使用代码处理它,我会检查是否有任何评论并将其删除。
推荐阅读
- java - 我的 bash 脚本在 Java 需要读取文件时锁定了文件
- facebook - 无法构建模块“FBSDKShareKit”
- c# - 可以在我的 Azure Function 中使用静态 Simple Injector DI 容器吗?
- javascript - 从谷歌云存储中获取文件夹中所有文件的公共链接
- django - 分页 DRF 无法正常工作
- maven - 有没有办法按范围过滤 Maven 的依赖:树?
- python - 使用正则表达式函数时返回值不一致
- c# - 通过 TCP/IP 将字符串传输到多台计算机
- svn - 结合多个 SVN 存储库,同时保持按时间顺序排列的历史记录
- android - 如何在 aapt2link 中使用原始格式的资源表构建静态库