【发布时间】:2016-12-23 16:50:22
【问题描述】:
我正在使用 MySQL 构建一个 Django 站点。不幸的是,我不太清楚如何将我的架构放在一起。
我有一个用户表、一个任务表和一个会话表。
每个用户一次可以有 3 个活动任务。每个用户可以在每个工作会话中更新(设置为完成、失败或保持打开状态)这三个任务。如果用户完成任务(即打开的任务少于三个),下次他们创建会话时,他们将有机会创建新任务。最后一部分很容易编码,它是支撑表模式的逻辑给我带来了麻烦。
我的问题是我不知道如何正确建模。起初我想在 Session 表中包含 3 个单独的列,外键指向 Task 表。但是,从我正在阅读的内容来看,我似乎无法添加 3 个外键,它们都引用同一个表的不同实例。或者,我考虑在会话和任务之间创建一个多对多表。但是,我是否必须为每个打开的会话创建三个表条目?这似乎很快就会失控,而且在我看来也很草率。
老实说,我完全不知道如何建模。非常感谢任何帮助或意见。
谢谢
【问题讨论】:
-
“看起来我不能添加 3 个外键都引用同一个表的不同实例”。你当然可以。你试过什么?
-
老实说:我没有。我让自己迷失在文档的海洋中,但我确信这个解决方案是行不通的。我太傻了……谢谢你的现实检查!
标签: mysql django database database-design database-schema