这里拿学生选课和选学校来举例子
一共有4张表(中间表先不算)
1.学生表 2.学生详情表 3.课程表 4.学院表
关系有3种
学生表和学生详情表构成一对一关系(一个学生对应一个学生详情)
学生表和学院表构成一对多关系(一个学生只能选一个学院,一个学院可以选多个学生)
学生表和课程表构成多对多关系(一个学生可以选多门课,一个课程可以包含多个学生)
1.学院表(与学生表构成一对多)
class Department ( models. Model) :
d_id = models. AutoField( primary_key= True )
d_name = models. CharField( max_length= 30 )
2.学生表
学生表
class Student ( models. Model) :
s_id = models. AutoField( primary_key= True )
s_name = models. CharField( max_length= 30 )
department = models. ForeignKey( 'Department' , on_delete= models. CASCADE)
course = models. ManyToManyField( 'Course' )
3.课程表(与学生表构成多对多,但是要一个中间表(django自动生成))
class Course ( models. Model) :
c_id = models. AutoField( primary_key= True )
c_name = models. CharField( max_length= 30 )
4.学生详情表(与学生表构成一对一)
class Stu_detail ( models. Model) :
stu_detail = models. OneToOneField( 'Student' , on_delete= models. CASCADE)
age = models. IntegerField( )
sex = models. CharField( max_length= 30 , null= True )
最后看一下mysql数据库中的表结构