Mysql 在一个查询中检索存在于一个相关模型中的用户
我在这里寻找可以提高速度和效率的ORM或原始SQL。首先,设计(imho)是最好的,但我愿意接受建议,因为这就是客户业务的运作方式 用户/员工在人力资源结构中的特定“点”工作,如下所示。在人力资源结构中,有些人可以有办公室(比如一个主管可以在下面有办公室,可以分配员工),或者根本没有办公室Mysql 在一个查询中检索存在于一个相关模型中的用户,mysql,django,Mysql,Django,我在这里寻找可以提高速度和效率的ORM或原始SQL。首先,设计(imho)是最好的,但我愿意接受建议,因为这就是客户业务的运作方式 用户/员工在人力资源结构中的特定“点”工作,如下所示。在人力资源结构中,有些人可以有办公室(比如一个主管可以在下面有办公室,可以分配员工),或者根本没有办公室 class User(models.Model): username=models.CharField(max_length=20) class Head(models.
class User(models.Model):
username=models.CharField(max_length=20)
class Head(models.Model):
name=models.CharField(max_length=20)
class Dept(models.Model):
name=models.CharField(max_length=20)
head=models.ForeignKey(Head)
class Division(models.Model):
name=models.CharField(max_length=20)
dept=models.ForeignKey(Dept)
class Unit(models.Model):
name=models.CharField(max_length=20)
Division=models.ForeignKey(Division)
class Office(models.Model):
name=models.CharField(max_length=20)
head=models.ForeignKey(Head,db_index=True,null=True)
dept=models.ForeignKey(Dept,db_index=True,null=True)
division=models.ForeignKey(Division,db_index=True,null=True)
unit=models.ForeignKey(Unit,db_index=True,null=True)
class Positions(models.Model):
user=models.ForeignKey(User)
head=models.ForeignKey(Head,db_index=True,null=True)
dept=models.ForeignKey(Dept,db_index=True,null=True)
division=models.ForeignKey(Division,db_index=True,null=True)
unit=models.ForeignKey(Unit,db_index=True,null=True)
office=models.ForeignKey(Office,db_index=True,null=True)
现在,我想得到一个用户的位置列表,并有一个友好的输出。例如,如果他在部门工作,我需要该部门的名称以及该部门的负责人。如果他在某个部门的办公室工作,我想知道办公室、部门、部门和负责人的姓名
到目前为止,我得到的信息是原样的(officename返回,其余为null)
关于如何在单个查询中改进查询(raw或orm)的任何建议?请共享模型代码。@art06请查看。您确定这些值已正确设置为position对象吗?哦,是的。后端在插入它们之前执行所有正确的检查。
positions=Position.objects.filter(user_id=1).values('id','office__name','head__name','dept__name','division__name','unit__name')