微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQL - 两个表之间的多重关系

如何解决SQL - 两个表之间的多重关系

我有一个用户表和一个任务表。

在“任务”表中,我希望有“创建者”和“修改者”列。

这两列都应该有用户表的外键。

这是否像从每一列到用户表创建外键一样简单,还是我应该在此处采用推荐的方法

解决方法

这没有什么奇怪的。 (恕我直言,你可能想多了。)

您的任务实体有两个用户(创建和修改)。这些列中的每一个都可以配置为它自己的外键,从您的任务到您的用户表。没问题。

但我的经验告诉我,您应该考虑采用不同的方式来处理关联用户和任务的问题。我建议您添加第三个表,可能称为 Action。

对于用户对任务采取的每个操作,它都有一行。它可能看起来像这样。

action_id  task_id  user_id action  ts                    description
   214        48      97    create  2020-01-29T12:33:00   
   215        48      34    edit    2020-01-29T14:25:00   explain how to test
   216        48      88    edit    2020-01-29T14:48:00   update explanation

action_id 是一个自动递增的 pk。 task_id 是 Tasks 表的 FK,而 user_id 是 Users 表的 FK。这个 Actions 表的目的是跟踪用户对任务做了什么。查询对任务执行的第一个操作或最后一个操作很简单。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。