編寫目的 該博客是小賬本在前期開發階段針對用戶所進行的資料庫設計,通過ER圖,數據字典,數據流圖來對該軟體的資料庫開發進行設計,並且附上部分源代碼進行參考。 背景 待開發的軟體名稱為:小賬本 作業名稱:第三次團隊博客 定義 小賬本ER圖設計 由於該任務的小組成員表示目前的er圖已經漸漸往uml圖的趨 ...
編寫目的
該博客是小賬本在前期開發階段針對用戶所進行的資料庫設計,通過ER圖,數據字典,數據流圖來對該軟體的資料庫開發進行設計,並且附上部分源代碼進行參考。
背景
- 待開發的軟體名稱為:小賬本
- 作業名稱:第三次團隊博客
定義
- ER圖:E-R圖也稱實體-聯繫圖(Entity Relationship Diagram),提供了表示實體類型、屬性和聯繫的方法,用來描述現實世界的概念模型
- UML圖:UML-Unified Model Language 統一建模語言,又稱標準建模語言。是用來對軟體密集系統進行可視化建模的一種語言。UML的定義包括UML語義和UML表示法兩個元素。
- 數據字典:數據字典是指對數據的數據項、數據結構、數據流、數據存儲、處理邏輯等進行定義和描述,其目的是對數據流程圖中的各個元素做出詳細的說明,使用數據字典為簡單的建模項目。
- 數據流圖:簡稱DFD,它從數據傳遞和加工角度,以圖形方式來表達系統的邏輯功能、數據在系統內部的邏輯流向和邏輯變換過程,是結構化系統分析方法的主要表達工具及用於表示軟體模型的一種圖示方法。
小賬本ER圖設計
由於該任務的小組成員表示目前的er圖已經漸漸往uml圖的趨勢發展,所以該er圖包含了一部分uml圖的特征
小賬本數據表
數據表的設計通過數據流圖和數據字典分別設計
數據字典
用戶表
欄位名 |
中文名 |
數據類型 |
主鍵 |
外鍵 |
說明 |
U_id |
用戶id |
int |
PK |
不能為空 |
|
Con_id |
配置id |
int |
FK1 |
不能為空 |
|
U_number |
登錄賬號 |
varchar(20) |
FK2 |
不能為空 |
|
U_name |
用戶名 |
varchar(50) |
用戶昵稱 |
||
U_gender |
性別 |
char(2) |
性別可為空 |
||
U_phone |
電話 |
Char(11) |
分類表
欄位名 |
中文名 |
數據類型 |
主鍵 |
外鍵 |
說明 |
C_id |
類別id |
int |
PK |
不能為空 |
|
type |
類別 |
varchar(255) |
配置表
欄位名 |
中文名 |
數據類型 |
主鍵 |
外鍵 |
說明 |
Con_id |
配置id |
int |
PK |
不能為空 |
|
U_id |
用戶id |
int |
FK |
不能為空 |
|
key_ |
配置信息 |
varchar(255) |
配置信息按照鍵值對的形式出現 ,類型是varchar(255) |
||
value |
配置信息的值 |
配置信息的值, 類型是 varchar(255) |
登錄表
欄位名 |
中文名 |
數據類型 |
主鍵 |
外鍵 |
說明 |
U_number |
賬號 |
varchar(20) |
PK |
不能為空 |
|
U_id |
用戶id |
int |
FK |
不能為空 |
|
U_password |
密碼 |
varchar(50) |
密碼要求保密性高 |
消費表
欄位名 |
中文名 |
數據類型 |
主鍵 |
外鍵 |
說明 |
U_id |
用戶id |
int |
PK |
FK1 |
不能為空 |
C_id |
類別id |
int |
PK |
FK2 |
不能為空 |
spend |
消費金額 |
int |
|||
date |
日期 |
Date |
預設系統時間 |
||
Comment |
備註 |
varchar(255) |
收入表
欄位名 |
中文名 |
數據類型 |
主鍵 |
外鍵 |
說明 |
U_id |
用戶id |
int |
PK |
FK1 |
不能為空 |
C_id |
類別id |
int |
PK |
FK2 |
不能為空 |
earn |
收入金額 |
int |
|||
date |
日期 |
Date |
預設系統時間 |
||
Comment |
備註 |
varchar(255) |
數據流圖
小賬本頂層數據流圖
細化記賬功能數據流圖
再次細化該數據流圖
用戶登錄數據流圖
查詢功能數據流圖
心愿功能數據流圖
資料庫源代碼設計
SET FOREIGN_KEY_CHECKS = 0; DROP TABLE IF EXISTS `user`; DROP TABLE IF EXISTS `property`; DROP TABLE IF EXISTS `operating`; DROP TABLE IF EXISTS `budget`; DROP TABLE IF EXISTS `wish`; SET FOREIGN_KEY_CHECKS = 1; CREATE TABLE `user` ( `id` char(12) NOT NULL, `username` char(20) NOT NULL, `descriptin` varchar NOT NULL, PRIMARY KEY (`id`) ); CREATE TABLE `property` ( `id` char(1) NOT NULL, `account` char(18) NOT NULL, `balance` float(8) NOT NULL, `uid` char(12) NOT NULL, PRIMARY KEY (`id`, `uid`) ); CREATE TABLE `operating` ( `id` char(12) NOT NULL, `type` bool NOT NULL, `account` float(8) NOT NULL, `uid` char(12) NOT NULL, `pid` char(1) NOT NULL, PRIMARY KEY (`id`, `uid`, `pid`) ); CREATE TABLE `budget` ( `id` char(12) NOT NULL, `schedule` float(8) NOT NULL, `uid` char(12) NOT NULL, PRIMARY KEY (`id`, `uid`) ); CREATE TABLE `wish` ( `id` char(12) NOT NULL, `description` varchar NOT NULL, `finishtime` date NOT NULL, `uid` char(12) NOT NULL, PRIMARY KEY (`id`, `uid`) ); ALTER TABLE `property` ADD FOREIGN KEY (`uid`) REFERENCES `user`(`id`); ALTER TABLE `operating` ADD FOREIGN KEY (`uid`) REFERENCES `user`(`id`); ALTER TABLE `operating` ADD FOREIGN KEY (`pid`) REFERENCES `property`(`id`); ALTER TABLE `budget` ADD FOREIGN KEY (`uid`) REFERENCES `user`(`id`); ALTER TABLE `wish` ADD FOREIGN KEY (`uid`) REFERENCES `user`(`id`);