Schwinn賬本 約束

2021-10-09 22:55:21 字數 1520 閱讀 2146

1.主鍵

為了讓資料庫將id識別為主鍵,應新增主鍵約束;

主鍵約束自帶非空和唯一屬性,即不能插入空亦不可重複;

eg.alter table category add constraint pk_category_id primary key (id);

alter table category 表修改表category

add constraint 增加約束

pk_category_id 約束名稱 pk 是primary key的縮寫,category是表名, id表示約束加在id欄位上。最好做到見名知意。

primary key

約束型別是主鍵約束

(id) 表示約束加在id欄位上

對三張表都加上主鍵約束;

2.設定id為自增長

eg.alter table category change id id int auto_increment;

alter table category 表示修改表category

change id 表示修改字段 id

id int auto_increment; 修改後的id是 int型別,並且是auto_increment(修改之前僅僅是int型別,沒有auto_increment)

3. 外來鍵約束

外來鍵約束的作用是保持資料的一致性

比如增加一條消費記錄,金額是500,cid是5。

但是cid=5在分類表category中找不到對應的資料,那麼這就破壞了資料的一致性,會帶來一系列的後續問題,比如根據分類進行統計,就會找不到這條資料。

增加外來鍵約束之前首先確定record表的外來鍵是cid,指向了category表的id主鍵。

所以增加外來鍵之前,必須把category的id欄位設定為主鍵。從而保證cid=5的資料在category中只能找到一條,而不是找到多條。

eg.alter table record add constraint fk_record_category foreign key (cid) references category(id)

alter table record 修改表record

add constraint 增加約束

fk_record_category 約束名稱fk_record_category,fk是foreign key的縮寫,record_category表示是從record表指向category表的約束。 建議使用可讀性好的命名方式。

foreign key 約束型別,外來鍵

(cid) references category(id) 本表record的字段 cid 指向category表的字段id;

Schwinn賬本 資料庫與表 札記

1.建立資料庫 2.確定表之需求 1 配置表資訊config 儲存每月預算和mysql安裝路徑 用於備份還原 2 消費分類表category 儲存消費分類,諸如衣,食,住,行 3 消費記錄表record 用於存放每一筆消費記錄 3.配置資訊表config 配置資訊表 config有如下字段 id 主...

差分約束 賬本核算

一本通4.2 任意門 題目 小d接到乙個任務,為稅務部門調查一位商人的賬本,看看賬本是不是偽造的。賬本上記錄了n個月以來的收入情況,其中第i個月的收入額為ai i 1,2,3,n 1,n 當 ai大於0時表示這個月盈利ai元,當 ai小於0時表示這個月虧損ai元。所謂一段時間內的總收入,就是這段時間...

超級賬本(介紹)

本系列目錄 超級賬本原始碼 v1.3 解析目錄 區塊鏈是由分布式網路節點維護的乙個不可修改的交易賬本,每個節點都維護乙個副本,賬本中的交易都由共識演算法驗證後打包成區塊的形式,每個區塊中包含前乙個區塊的雜湊值,形成鏈狀。中文英文 公有鏈public blockchain permissionless...