mysql注解表与多个表的关系

llycmphe  于 2021-06-19  发布在  Mysql
关注(0)|答案(2)|浏览(323)

因为基本上任何东西下都可能有注解,所以我不确定如何将关系转换到我的数据库设计模式中。

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表有关系。但是,评论本身可以在post或video下,这是两个独立的表。我的问题是:我应该为这两种关系(video\u comments和post\u comments)创建一个连接表,还是以其他方式创建连接表。此外,应该有一个对删除级联约束,这将导致一个视频,这是被删除,也删除了有关它的评论。

fbcarpbf

fbcarpbf1#

我想你可以创造 commentable_id 以及 commentable_type 让您知道此id属于哪个表作为此部分
此外,应该有一个对删除级联约束,这将导致一个视频,这是被删除,也删除了有关它的评论
我不知道如何做到这一点,我想如果我是在你的立场,我会处理它使用的代码之前,我删除一个视频,我会检查是否有任何评论,并删除它。

wgx48brx

wgx48brx2#

以下是您可能需要考虑的另一种方法:
添加一个名为“itme\u id”或类似的列来存储视频\u id或post\u id
创建 for/after delete triggers 在video和post表上,使用magic表中的信息删除触发器内的comment表。
这样,您就不必创建一个新表或坚持使用cascade。这只是我的假设,请让我知道这是否对你有意义。

相关问题