不使用任何外键( 在程序中维护这种多对多的逻辑关系 )
多对多查询问题
是否有更好的查询方法( 我首相想到了 JOIN , 但是貌似不行 )
表定义
class User(models.Model):
info = models.CharField(max_length=1000, default='')
class Clients(models.Model):
info = models.CharField(max_length=1000)
class UserClient(models.Model):
user_id = models.IntegerField()
client_id = models.IntegerField()
我的查询
# 查询某用户的所有客户端
user = User.objects.filter(id__exact=10).first()
client_ids = UserClient.objects.filter(user_id__exact=user.id).valuelist('client_id').all()
clients = Client.objects.filter(id__in=client_ids).all()
( 如果有外键的话, 一般使用一条 INNER JOIN 就够了 )
Django 1.9
Mysql 5.6
Linux