gpt4 book ai didi

mysql - 不同的数据库表加入单个表

转载 作者:搜寻专家 更新时间:2023-10-30 20:21:40 25 4
gpt4 key购买 nike

假设您的数据库中有多个表,每个表都有自己的结构,每个表都有自己的 PRIMARY KEY。

现在您想要一个收藏夹表,以便用户可以将项目添加为收藏夹。由于有多个表,首先想到的是为每个表创建一个 Favorites 表:

假设您有一个名为 Posts 的表,其中包含 PRIMARY KEY (post_id),您创建了一个包含 PRIMARY KEY (user_id, post_id) 的 Post_Favorites

这可能是最简单的解决方案,但是否可以让一个 Favorites 表连接多个表?

我考虑过以下可能的解决方案:

使用主键 (master_id) 创建一个名为 Master 的新表。在插入时在数据库中的所有表上添加触发器,以生成一个新的 master_id 并将其沿着表中的行写入。另外考虑一下,我们也写在Master表中,master_id已经用到了(在哪个表上)

现在您可以拥有一个带有 PRIMARY KEY (user_id, master_id) 的 Favorites 表

您可以选择收藏夹表并加入 master_id 上的每个单独的表,并获取每个表的收藏夹。但是是否可以通过一个查询(也许不是查询,而是存储过程?)获取所有收藏夹?

你认为这是一种愚蠢的做法吗?由于您将对每个表执行一个查询,因此拥有一个表有什么好处?

你对这件事有什么看法?

最佳答案

一种方法是将所有可能的表子类型化为通用父类(super class)型(实体),然后将用户首选项链接到该父类(super class)型。例如:

alt text

关于mysql - 不同的数据库表加入单个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3698912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com