我有三种模式:
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连接表查询的唯一方法吗?还有其他方法吗?
谢谢!