数据库表设计-核心表创建
数据库整体设计
一个仓库管理数据库,我们首先需要了解需求,才可能去设计我们的数据库,那么对一个仓库管理,必定是对仓库里的零件进行管理,那么我们还需要知道零件的来源,哪些零件来自哪些供应商?零件的去向又是哪一零件供应给哪一个项目使用?这些零件存放在哪个仓库?哪个职员管理哪个仓库?等等一些问题,都是我们在设计数据库之前需要思考的问题。
仓库管理系统数据库的整体设计如下图所示:总共涉及到七张表:
- 仓库表
- 零件表
- 供应商表
- 项目表
- 职员表
- 供应关系表
- 仓库关系表
仓库表
仓库表的主要信息有如下内容:
字段名称类型备注约束warehouseIdint(11)仓库号主键,非空areaint(11)面积非空phoneint(11)电话号码非空
零件表
零件表的主要信息有如下内容:
字段名称类型备注约束componentIdint(11)零件号主键,非空componentNamevarcahr(20)名称非空standardvarchar(255)规格非空pricedouble(10,2)价格非空describevarchar(255)描述非空
供应商表
供应商表的主要信息有如下内容:
字段名称类型备注约束supplyIdint(11)供应商号主键,非空namevarchar(20)姓名非空addressvarchar(255)地址非空phoneint(11)电话号码非空accountbigint(18)账号非空
编程要求
请使用 warehouse_db 数据库创建表,具体任务如下:
- 创建仓库表,命名为 warehouse;
- 创建零件,命名为 component;
- 创建供应商表,命名为 supplier。
测试说明
补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。测试输出结果较长,请自行在测试集中查看。
注意:每次点击评测后台都会将数据库环境重置,数据库 warehouse_db 会自动创建好。
头歌实验代码
#请在此添加实现代码
########## Begin ##########
#在warehouse_db库中创建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库中创建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库中创建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 ##########
数据库表设计-项目职员表
设计编写完核心表之后,我们还需要设计表对仓库的零件进行销售和管理,这里我们设计两张表——项目表和职员表如下图:
项目表
项目表的主要信息有如下内容:
字段名称类型备注约束projectIdint(11)项目号主键,非空projectBudgetdouble(10,0)项目预算非空commenceDatedatetime开工日期非空
职员表
字段名称类型备注约束employeeIdint(11)职工号主键,非空namevarchar(20)姓名非空ageint(3)年龄非空designationvarchar(20)职称非空warehouseIdint(11)仓库号外键,非空leadersvarchar(20)上级领导非空
编程要求
请使用 warehouse_db 数据库创建项目表和职员表,具体任务如下:
① 项目表命名为 project;
② 借阅表命名为 employee 。
注意其中外键要求如下:
- 外键 warehouseId 的外键名称设置为 FK_employee_warehouseId,外键表为仓库表(warehouse)
头歌实验代码
#请在此添加实现代码
########## Begin ##########
#在warehouse_db库中创建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库中创建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 ##########
数据库表设计-关联表
关联表
我们已经把所有的信息表都创建好了,现在我们就来创建他们之间的关联表——供应表和库存表:
供应表
字段名称类型备注约束supplyIdint(11)供应商号主键,外键,非空projectIdint(11)项目号外键,非空componentIdint(11)零件号外键,非空supplyCountint(11)供应量非空库存表
字段名称类型备注约束warehouseIdint(11)仓库号主键,外键,非空componentIdint(11)零件号外键,非空repertoryCountint(11)库存量非空
编程要求
请在
Begin-End
之间使用 warehouse_db 数据库创建供应表和库存表,具体任务如下:
① 供应表命名为 supply ,注意其中外键要求如下:
- 外键 supplyId 的外键名称设置为 FK_supply_supplyId,外键表为供应商(supplier);
- 外键 projectId 的外键名称设置为 FK_supply_projectId,外键表为项目表(project);
- 外键 componentId 的外键名称设置为 FK_supply_componentId,外键表为零件表(component)。
② 库存表命名为 repertory ,注意其中外键要求如下:
- 外键 warehouseId 的外键名称设置为 FK_repertory_warehouseId,外键表为仓库表(warehouse);
- 外键 componentId 的外键名称设置为 FK_repertory_component_componentId,外键表为零件表(component)。
开始你的任务吧,祝你成功!
头歌实验代码
#请在此添加实现代码
########## Begin ##########
#在warehouse_db库中创建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库中创建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 ##########
版权归原作者 椅糖 所有, 如有侵权,请联系我们删除。