数据库开发综合案例——仓库管理系统设计
作者:mmseoamin日期:2023-12-21

目录

数据库表设计-核心表创建

数据库整体设计

头歌实验代码 

数据库表设计-项目职员表

头歌实验代码 

数据库表设计-关联表

头歌实验代码 


数据库表设计-核心表创建

数据库整体设计

一个仓库管理数据库,我们首先需要了解需求,才可能去设计我们的数据库,那么对一个仓库管理,必定是对仓库里的零件进行管理,那么我们还需要知道零件的来源,哪些零件来自哪些供应商?零件的去向又是哪一零件供应给哪一个项目使用?这些零件存放在哪个仓库?哪个职员管理哪个仓库?等等一些问题,都是我们在设计数据库之前需要思考的问题。

仓库管理系统数据库的整体设计如下图所示:总共涉及到七张表:

  • 仓库表

  • 零件表

  • 供应商表

  • 项目表

  • 职员表

  • 供应关系表

  • 仓库关系表

    数据库开发综合案例——仓库管理系统设计,第1张

    仓库表

    仓库表的主要信息有如下内容:

    字段名称类型备注约束
    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 ##########
      

      数据库表设计-项目职员表

      设计编写完核心表之后,我们还需要设计表对仓库的零件进行销售和管理,这里我们设计两张表——项目表和职员表如下图:

      数据库开发综合案例——仓库管理系统设计,第2张

      项目表

      项目表的主要信息有如下内容:

      字段名称类型备注约束
      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 ##########
        

        数据库表设计-关联表

        关联表

        我们已经把所有的信息表都创建好了,现在我们就来创建他们之间的关联表——供应表和库存表:

        数据库开发综合案例——仓库管理系统设计,第3张

        • 供应表
          字段名称类型备注约束
          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 ##########