【发布时间】:2021-04-30 07:04:10
【问题描述】:
对于新手问题以及已经回答的问题,我提前道歉。我已经搜索了多个术语,但没有弄清楚。
我正在尝试找出模型架构及其在 Django 项目中的关系。 这样做时出现的问题如下:
关于代码的第一部分:(国家>州>城市>大学>部门>主题):
-
层级是否太多?有什么方法可以更好或更有效地对其进行建模? 我也一直在寻找嵌套关系(序列化程序),但不知道是否有更好的组织方式。
-
让模型(例如州或城市)在层次结构中只有一个字段是一种好习惯吗? 我的意思是,我需要它们,但不确定它们是否可以避免,因为它们与另一个模型关系解决方案很简单。
“模型”可以访问其第二个/第三个/第 n 个父级吗?例如:主题可以通过以下方式轻松访问其部门:
Subject.objects.filter(department__name='Maths')
但是可以从主题对象访问大学或州吗?怎么样?
** 已由daneil James回答
关于代码的第二部分(个人和笔记本电脑):
-
我在模特中担任过几个角色(总裁、院长、主任、老师)。其中一些字段具有多对多关系:
例如:一名教师可以从事多个学科,而一个学科可以拥有多个教师。
我假设我可以使用内置的用户 API 和角色/组来解决这个问题。所以最后,校长或老师都是角色,但不知道如何以这种方式实现它,或者它是否是一个好主意。
- 关于笔记本电脑,假设大学有一些笔记本电脑(ManyToOne 关系),这很简单。 但是这些笔记本电脑被分配到一个部门和一个主题。在笔记本电脑型号中,我是否需要大学、系和学科的外键?
如何正确计算它们或拥有注册表? 大学有 10 台笔记本电脑,分配给 2 个系和 5 个科目。
再次,如果问题太基本,我深表歉意。
提前致谢!
模型架构:(伪代码)
class Country(models.Model):
name:
extension:
currency:
<<president>>:
class State (models.Model)
name:
**country: models.ForeignKey(Country)**
class City (models.Model)
name:
**state: models.ForeignKey(State)**
class University(models.Model)
name:
address:
<<dean>>:
**city: models.ForeignKey(City)**
laptop:
class Department(models.Model)
name:
<<director>>:
**university: models.ForeignKey(University)**
laptop:
class Subject(models.Model)
name:
description:
<<teacher>>:
**department: models.ForeignKey(Department)**
laptop:
class Person(models.Model):
name:
address:
age:
class Laptop(models.Model):
brand:
model:
serial:
date:
【问题讨论】:
标签: django database model relationship