
就是A,B都和host,group关联,他们的关系是多对多关系。也就是 1个A对应多个host或group,1个host对应多个A,B。
由于还需要在group和A,B的关系中存储一个额外的值,所以单独建了一个关系表。
model大概如下
class A
class B
class Host
class Group
class A_host_rel
A_id = models.ForigenKey(A)
host_id = models.ForigenKey(Host)
class B_host_rel
B_id = models.ForigenKey(B)
host_id = models.ForigenKey(Host)
class A_group_rel
A_id = models.ForigenKey(A)
group_id = models.ForigenKey(Group)
num = xxx
class B_group_rel
B_id = models.ForigenKey(B)
group_id = models.ForigenKey(Group)
num = xxx
这样做之后。。问题是:
关系表非常多,维护关系非常蛋疼。。而且很容易写错。。
是否有更好的设计方法?操作数据库更容易些?我觉得还有一个方案是关系表用ContentType,关联A和B,这样只需要两个关系表了。但关联查询好像做不了。