我想知道以下情况的最佳结构是什么:
1) There are clients who sends requests to the other clients
2) Client should be connected to the user somehow: one client = one user
3) One client can send multiple requests
4) Every client has its own clients list
到目前为止,我做了以下事情:
class Client(models.Model):
owner = models.OneToOneField(User,primary_key=True)
my_clients = models.ManyToManyField('self', related_name='my_clients', symmetrical=False, blank=True)
class Request(models.Model):
sender = models.ForeignKey(Client, related_name='sender')
receiver = models.ForeignKey(Client, related_name='receiver')
我正在考虑在客户端对象上附加请求列表。应该在模型中进行,还是最好只在序列化器中生成该列表?
你能看到这个结构中的一些陷阱 - 在缩放方面吗?
感谢您的建议!
答案 0 :(得分:1)
由于缺乏经验,我不能就最佳结构问题进行辩论,但我可能会尽量避免使用Client
和{{1}这样的名称} - 太靠近内置名称
想象一下,您将开始进行单元测试,并且必须执行以下操作
Request
根据我的理解,使用from django.test import Client
和django的Client
会降低可读性。
如果我错了,请纠正我。