数据库的表间关系分为三种
1、一对多
一对多想要连接就要用到建立外键(另一张表的主键),为了更好的操作,外键应该建立在多的表上
2、一对一
一对一就可以单独的自行操作
3、多对多
多对多想要连接的的话就要建立第三张表在第三张表上建立外键
一、一对多(建立外键)
就比如我想建立学生和教室表,学生就是多的一方,教室就是一的一方,要建立外键的话就要建立在学生表上
#建立一个学生表 class Students(db.Model): #学生id(主键) id = db.Column(db.Integer, primary_key=True) #学生姓名 name = db.Column(db.String(64)) #建立外键,和班级表的主键进行连接 coll_id = db.Column(db.Integer, db.ForeignKey("collective.id")) #建立班级表 class Collective(db.Model): #建立班级id(主键) id = db.Column(db.Integer, primary_key=True) #建立班级名称 name = db.Column(db.String(64))
二、一对一(不做链接,直接建表)
一对一就是和另一个表并没有直接关系,这一种就可以直接建立两张表,可以不做关联
三、多对多(建立第三张表)
打个比方班级和老师就是多对多,一个老师可以教课多个班级,一个班级可以让多个老师来教课
,像这一种就要建立第三张表来把他们相互连接
#建立一个班级表 class Collective(db.Model): #建立班级id(建立主键) id = db.Column(db.Integer, primary_key=True) #建立班级名称 name = db.Column(db.String(64)) #建立老师表 class Teacher(db.Model): #建立老师id(建立主键) id = db.Column(db.Integer, primary_key=True) #建立老师姓名 name = db.Column(db.String(64)) #建立班级老师表 class Coll_Tea(db.Model): #建立id(建立主键) id = db.Column(db.Integer, primary_key=True) #建立班级id(建立外键) coll_id = db.Column(db.Integer, db.ForeignKey("collective.id")) #建立老师id(建立外键) yea_id = db.Column(db.Integer, db.ForeignKey("teacher.id"))