目錄建立表結構
多表關連的設定
自建立關聯表方法
自建表 和 manytomanyfield 聯合使用
databases =
}
import pymysql
pymysql.install_as_mysqldb()
warnings:
?: (mysql.w002) mysql strict mode is not set for database connection 'default'
hint: mysql's strict mode fixes many data integrity problems in mysql, such as data truncation upon insertion,
by escalating warnings into errors. it is strongly recommended you activate it.
#解決辦法一
options: ,
#解決辦法二
#去設定 mysql檔案的的my.ini
sql-mode="strict_trans_tables,no_auto_create_user,no_engine_substitution"
#在輸入命令重啟mysql(windos系統)
資料庫遷移命令
#資料庫遷移 命令(建議一起執行)
python manage.py makemigrations
python manage.py migrate
#每次對models.py檔案操作,都盡量執行遷移命令
from django.db import models
class publisher(models.model):
pid = models.autofield(primary_key=true)
name = models.charfield(max_length=32, unique=true)
"""出版社 表設計 表名 publisher
pid為出版社的id,設定為主鍵,預設為int型別 primary_key=true 欄位名為pid
name為出版社的名字,限制字元長度32,設定唯一屬性unique=true 欄位名為name
還可以新增,**,辦公位址等字段,我這裡就不新增了
"""class book(models.model):
title = models.charfield(max_length=32)
pub = models.foreignkey("publisher",on_delete=models.cascade)
"""圖書 表設計 表名 book
title為書名 限制字元長度32
put為外來鍵 models.foreignkey ("publisher")關聯publisher表 on_delete=models.cascade設定級聯關係
"""cid 主鍵
cname 約束32位的字元,unique=true 約束唯一
"""class student(models.model):
sid = models.autofield(primary_key=true)
s_name = models.charfield(max_length=32,null=false)
gender = models.charfield(max_length=2,default='男')
class_id = models.foreignkey("class",on_delete=models.cascade)
"""sid 主鍵
s_name 字元 32位 非空約束
gendef 字元 2位 預設設定為男
class 外來鍵 關聯class表 , 級聯設定
#要實現作者表關聯出版社和書記表,建立第四章表,來建立練習
#第一種 django幫我們生成第三張表
class author(models.model):
name = models.charfield(max_length=32)
books = models.manytomanyfield('book') # 不在author表中生產字段,自動生成第三張表
"""name 作者名字 32為字元
books book和author多對多的關係。books是author跟book關聯的所有物件。books的作用是在
author和book中建立乙個中間的關係物件,放在第三張表中,再根據這個中間的關係來獲取book中關聯的物件
"""author 關聯 author作者表 外來鍵 級聯設定
book 關聯 book圖書表 外來鍵 級聯設定
date 日期屬性
可以新增更多字段,就操作比麻煩
"""#呼叫方法
author_obj = models.author.objects.create(name=author_name) # 只插入book表中的內容
author_obj.books.set(books) # 設定作者和書籍多對多的關係
class author(models.model):
name = models.charfield(max_length=32)
books = models.manytomanyfield('book',through='authorbook') # through='authorbook' 不在author表中生產字段,
也不生產第三張表
class authorbook(models.model):
author = models.foreignkey(author, on_delete=models.cascade)#外來鍵關聯 author表 級聯設定
book = models.foreignkey(book, on_delete=models.cascade)#外來鍵關聯 book表 級聯設定
date = models.datefield()#可以設定更多字段
作 者:郭楷豐
出 處:
一下。您的鼓勵是博主的最大動力!
自 勉:生活,需要追求;夢想,需要堅持;生命,需要珍惜;但人生的路上,更需要堅強。帶著感恩的心啟程,學會愛,愛父母,愛自己,愛朋友,愛他人。
django資料庫之建表
首先了解幾個知識 什麼是一對多,多對多,一對一 什麼是關聯查詢 什麼是主表,什麼是從表 外來鍵放的位置 正向查詢,反向查詢 各種設計模式下,怎麼查詢 一對多 班級表和學生表 乙個班級可以有多個學生,乙個學生屬於那個班級 一對一 學生表和學生資訊表 每個學生對應各自的學生資訊 多對多 學生表和課程表 ...
資料庫建表
資料庫設計三大正規化 為了建立冗餘較小 結構合理的資料庫,設計資料庫時必須遵循一定的規則。在關係型資料庫中這種規則就稱為正規化。正規化是符合某一種設計要求的總結。要想設計乙個結構合理的關係型資料庫,必須滿足一定的正規化。在實際開發中最為常見的設計正規化有三個 1 第一正規化 確保每列保持原子性 第一...
資料庫建表
use 選擇現有資料庫。master為系統預設資料庫 use master goif exists select from sys.databases where name student drop database student gocreate database student gouse s...