数据库开发综合案例——仓库管理系统设计
目錄
數(shù)據(jù)庫表設(shè)計(jì)-核心表創(chuàng)建
數(shù)據(jù)庫整體設(shè)計(jì)
頭歌實(shí)驗(yàn)代碼?
數(shù)據(jù)庫表設(shè)計(jì)-項(xiàng)目職員表
頭歌實(shí)驗(yàn)代碼?
數(shù)據(jù)庫表設(shè)計(jì)-關(guān)聯(lián)表
頭歌實(shí)驗(yàn)代碼?
數(shù)據(jù)庫表設(shè)計(jì)-核心表創(chuàng)建
數(shù)據(jù)庫整體設(shè)計(jì)
一個(gè)倉庫管理數(shù)據(jù)庫,我們首先需要了解需求,才可能去設(shè)計(jì)我們的數(shù)據(jù)庫,那么對一個(gè)倉庫管理,必定是對倉庫里的零件進(jìn)行管理,那么我們還需要知道零件的來源,哪些零件來自哪些供應(yīng)商?零件的去向又是哪一零件供應(yīng)給哪一個(gè)項(xiàng)目使用?這些零件存放在哪個(gè)倉庫?哪個(gè)職員管理哪個(gè)倉庫?等等一些問題,都是我們在設(shè)計(jì)數(shù)據(jù)庫之前需要思考的問題。
倉庫管理系統(tǒng)數(shù)據(jù)庫的整體設(shè)計(jì)如下圖所示:總共涉及到七張表:
-
倉庫表
-
零件表
-
供應(yīng)商表
-
項(xiàng)目表
-
職員表
-
供應(yīng)關(guān)系表
-
倉庫關(guān)系表
倉庫表
倉庫表的主要信息有如下內(nèi)容:
| warehouseId | int(11) | 倉庫號 | 主鍵,非空 |
| area | int(11) | 面積 | 非空 |
| phone | int(11) | 電話號碼 | 非空 |
零件表
零件表的主要信息有如下內(nèi)容:
| componentId | int(11) | 零件號 | 主鍵,非空 |
| componentName | varcahr(20) | 名稱 | 非空 |
| standard | varchar(255) | 規(guī)格 | 非空 |
| price | double(10,2) | 價(jià)格 | 非空 |
| describe | varchar(255) | 描述 | 非空 |
供應(yīng)商表
供應(yīng)商表的主要信息有如下內(nèi)容:
| supplyId | int(11) | 供應(yīng)商號 | 主鍵,非空 |
| name | varchar(20) | 姓名 | 非空 |
| address | varchar(255) | 地址 | 非空 |
| phone | int(11) | 電話號碼 | 非空 |
| account | bigint(18) | 賬號 | 非空 |
編程要求
請使用 warehouse_db 數(shù)據(jù)庫創(chuàng)建表,具體任務(wù)如下:
-
創(chuàng)建倉庫表,命名為 warehouse;
-
創(chuàng)建零件,命名為 component;
-
創(chuàng)建供應(yīng)商表,命名為 supplier。
測試說明
補(bǔ)充完代碼后,點(diǎn)擊測評,平臺會對你編寫的代碼進(jìn)行測試,當(dāng)你的結(jié)果與預(yù)期輸出一致時(shí),即為通過。測試輸出結(jié)果較長,請自行在測試集中查看。
注意:每次點(diǎn)擊評測后臺都會將數(shù)據(jù)庫環(huán)境重置,數(shù)據(jù)庫 warehouse_db 會自動創(chuàng)建好。?
頭歌實(shí)驗(yàn)代碼?
#請?jiān)诖颂砑訉?shí)現(xiàn)代碼 ########## Begin ########## #在warehouse_db庫中創(chuàng)建warehouse表 use warehouse_db; CREATE TABLE `warehouse` (`warehouseId` int(11) NOT NULL,`area` int(11) NOT NULL,`phone` int(11) NOT NULL,PRIMARY KEY (`warehouseId`) ); #在warehouse_db庫中創(chuàng)建component表 CREATE TABLE `component` (`componentId` int(11) NOT NULL,`componentName` varchar(20) NOT NULL,`standard` varchar(255) NOT NULL,`price` double(10, 2) NOT NULL,`describe` varchar(255) NOT NULL,PRIMARY KEY (`componentId`) ); #在warehouse_db庫中創(chuàng)建supplier表 CREATE TABLE `supplier` (`supplyId` int(11) NOT NULL,`name` varchar(20) NOT NULL,`address` varchar(255) NOT NULL,`phone` int(11) NOT NULL,`account` bigint(18) NOT NULL,PRIMARY KEY (`supplyId`) ); ########## End ##########數(shù)據(jù)庫表設(shè)計(jì)-項(xiàng)目職員表
設(shè)計(jì)編寫完核心表之后,我們還需要設(shè)計(jì)表對倉庫的零件進(jìn)行銷售和管理,這里我們設(shè)計(jì)兩張表——項(xiàng)目表和職員表如下圖:
項(xiàng)目表
項(xiàng)目表的主要信息有如下內(nèi)容:
| projectId | int(11) | 項(xiàng)目號 | 主鍵,非空 |
| projectBudget | double(10,0) | 項(xiàng)目預(yù)算 | 非空 |
| commenceDate | datetime | 開工日期 | 非空 |
職員表
| employeeId | int(11) | 職工號 | 主鍵,非空 |
| name | varchar(20) | 姓名 | 非空 |
| age | int(3) | 年齡 | 非空 |
| designation | varchar(20) | 職稱 | 非空 |
| warehouseId | int(11) | 倉庫號 | 外鍵,非空 |
| leaders | varchar(20) | 上級領(lǐng)導(dǎo) | 非空 |
編程要求
請使用 warehouse_db 數(shù)據(jù)庫創(chuàng)建項(xiàng)目表和職員表,具體任務(wù)如下:
① 項(xiàng)目表命名為 project;
② 借閱表命名為 employee 。
注意其中外鍵要求如下:
- 外鍵 warehouseId 的外鍵名稱設(shè)置為 FK_employee_warehouseId,外鍵表為倉庫表(warehouse)
頭歌實(shí)驗(yàn)代碼?
#請?jiān)诖颂砑訉?shí)現(xiàn)代碼 ########## Begin ########## #在warehouse_db庫中創(chuàng)建project表 use warehouse_db; CREATE TABLE `project` (`projectId` int(11) NOT NULL,`projectBudget` double(10, 0) NOT NULL,`commenceDate` datetime NOT NULL,PRIMARY KEY (`projectId`) );#在warehouse_db庫中創(chuàng)建employee表 CREATE TABLE `employee` (`employeeId` int(11) NOT NULL,`name` varchar(20) NOT NULL,`age` int(3) NOT NULL,`designation` varchar(20) NOT NULL,`warehouseId` int(11) NOT NULL,`leaders` varchar(20) NOT NULL,PRIMARY KEY (`employeeId`),INDEX `FK_employee_warehouseId`(`warehouseId`),CONSTRAINT `FK_employee_warehouseId` FOREIGN KEY (`warehouseId`) REFERENCES `warehouse` (`warehouseId`) ); ########## End ##########數(shù)據(jù)庫表設(shè)計(jì)-關(guān)聯(lián)表
關(guān)聯(lián)表
我們已經(jīng)把所有的信息表都創(chuàng)建好了,現(xiàn)在我們就來創(chuàng)建他們之間的關(guān)聯(lián)表——供應(yīng)表和庫存表:
- 供應(yīng)表
| supplyId | int(11) | 供應(yīng)商號 | 主鍵,外鍵,非空 |
| projectId | int(11) | 項(xiàng)目號 | 外鍵,非空 |
| componentId | int(11) | 零件號 | 外鍵,非空 |
| supplyCount | int(11) | 供應(yīng)量 | 非空 |
- 庫存表
| warehouseId | int(11) | 倉庫號 | 主鍵,外鍵,非空 |
| componentId | int(11) | 零件號 | 外鍵,非空 |
| repertoryCount | int(11) | 庫存量 | 非空 |
編程要求
請?jiān)贐egin-End之間使用 warehouse_db 數(shù)據(jù)庫創(chuàng)建供應(yīng)表和庫存表,具體任務(wù)如下:
① 供應(yīng)表命名為 supply ,注意其中外鍵要求如下:
-
外鍵 supplyId 的外鍵名稱設(shè)置為 FK_supply_supplyId,外鍵表為供應(yīng)商(supplier);
-
外鍵 projectId 的外鍵名稱設(shè)置為 FK_supply_projectId,外鍵表為項(xiàng)目表(project);
-
外鍵 componentId 的外鍵名稱設(shè)置為 FK_supply_componentId,外鍵表為零件表(component)。
② 庫存表命名為 repertory ,注意其中外鍵要求如下:
-
外鍵 warehouseId 的外鍵名稱設(shè)置為 FK_repertory_warehouseId,外鍵表為倉庫表(warehouse);
-
外鍵 componentId 的外鍵名稱設(shè)置為 FK_repertory_component_componentId,外鍵表為零件表(component)。
開始你的任務(wù)吧,祝你成功!
頭歌實(shí)驗(yàn)代碼?
#請?jiān)诖颂砑訉?shí)現(xiàn)代碼 ########## Begin ########## #在warehouse_db庫中創(chuàng)建supply表 use warehouse_db; CREATE TABLE `supply` (`supplyId` int(11) NOT NULL,`projectId` int(11) NOT NULL,`componentId` int(11) NOT NULL,`supplyCount` int(11) NOT NULL,PRIMARY KEY (`supplyId`),INDEX `FK_supply_supplyId`(`supplyId`),CONSTRAINT `FK_supply_supplyId` FOREIGN KEY (`supplyId`) REFERENCES `supplier` (`supplyId`),INDEX `FK_supply_projectId`(`projectId`),CONSTRAINT `FK_supply_projectId` FOREIGN KEY (`projectId`) REFERENCES `project` (`projectId`),INDEX `FK_supply_componentId`(`componentId`),CONSTRAINT `FK_supply_componentId` FOREIGN KEY (`componentId`) REFERENCES `component` (`componentId`) ); #在warehouse_db庫中創(chuàng)建repertory表 CREATE TABLE `repertory`(`warehouseId` int(11) NOT NULL,`componentId` int(11) NOT NULL,`repertoryCount` int(11) NOT NULL,PRIMARY KEY (`warehouseId`),INDEX `FK_repertory_warehouseId`(`warehouseId`),CONSTRAINT `FK_repertory_warehouseId` FOREIGN KEY (`warehouseId`) REFERENCES `warehouse` (`warehouseId`),INDEX `FK_repertory_component_componentId`(`componentId`),CONSTRAINT `FK_repertory_component_componentId` FOREIGN KEY (`componentId`) REFERENCES `component` (`componentId`) ); ########## End ##########總結(jié)
以上是生活随笔為你收集整理的数据库开发综合案例——仓库管理系统设计的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux进程全解2——进程环境(环境变
- 下一篇: Linux进程全解11——进程间通信(I