數據庫的表間關系分為三種
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"))