Django / MYSQL外键最佳实践

时间:2016-02-26 23:19:27

标签: mysql django foreign-keys django-orm

我有三种模式:

class Agent(models.Model):
    name = models.CharField(max_length=200)

class Phone(models.Model):
    calls = models.CharField(max_length=200)
    agent_phone_name = models.CharField(max_length=200)
    agent = models.ForeignKey(Agent, on_delete=models.CASCADE)

class Chat(models.Model):
    chats = models.CharField(max_length=200)
    agent_chat_name = models.CharField(max_length=200)
    agent = models.ForeignKey(Agent, on_delete=models.CASCADE)

使用外键与代理进行聊天和电话链接。 我想制作一张这样的桌子:

agent1 | sum(calls) | sum(chats)
agent2 | sum(calls) | sum(chats)
agent3 | sum(calls) | sum(chats)

第一个问题是: 我已经阅读了SQL外键作为维护数据和参照完整性的方法。但是在我的情况下,有一个未接来电和聊天(代理没有拿起它),生成的数据行在agent_name上有空值。因此,当我插入电话/聊天数据并更新FK时,我让FK空了,有点与FK的想法相冲突。处理这个问题的最佳方法是什么?

第二个问题是:使用外键是在Django ORM中执行SQL连接表查询的唯一方法吗?还有其他方法吗?

谢谢!

0 个答案:

没有答案