gpt4 book ai didi

mysql - Django多个外键多次引用同一个表?

转载 作者:行者123 更新时间:2023-11-29 20:31:55 25 4
gpt4 key购买 nike

我正在使用 MySQL 构建一个 Django 站点。不幸的是,我不太清楚如何将我的架构组合在一起。

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

每个用户一次可以有 3 个事件任务。每个用户都可以在每个工作 session 中更新(设置为完成、失败或保持打开状态)这三个任务。如果用户完成任务(即少于三个打开的​​任务),则下次创建 session 时,他们将有机会创建新任务。最后一部分很容易编码,但支撑表模式的逻辑给我带来了麻烦。

我的问题是我不知道如何正确建模。起初,我想到在 session 表中包含 3 个独立的列,其中外键指向任务表。然而,从我读到的内容来看,我似乎无法添加 3 个外键,所有外键都引用同一个表的不同实例。或者,我考虑在 session 和任务之间创建一个多对多表。但是,我是否必须为每个打开的 session 创建三个表条目?这似乎很快就会失控,而且对我来说也显得很草率。

老实说,我完全不知道如何建模。我非常感谢任何帮助或意见。

谢谢

最佳答案

更新:当从 Django 中的另一个模型(表)多次引用同一模型(表)时,必须添加 related_name 参数。

class Task(models.Model):
name = models.CharField(max_length=50)

class MyUser(models.Model):
user = models.OneToOneField(User)
task_1 = models.ForeignKey(Task, related_name='task_one')
task_2 = models.ForeignKey(Task related_name='task_two')
task_3 = models.ForeignKey(Task related_name='task_three')

关于mysql - Django多个外键多次引用同一个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38989689/

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