精华内容
下载资源
问答
  • 全面的数据库设计文档 从系统分析 业务逻辑 业务流程图 数据流图 ER图 到实施
  • 这一阶段大概了解了目前超市销售管理的现状,了解了超市销售方面的业务,同时也发现了其中存在的一些问题。经过近两天时间的实践,了解了很多关于超市的知识,收获挺多的。 需求分析成果如下。 系统要处理的基本对象...
  • 超市销售系统——数据库系统设计

    千次阅读 2020-06-24 13:28:03
    【需求描述】: (1)超市业务按部门开展,目前该超市有采购部、销售部、运营部等,每个员工只能在一个...商品编码自行设计编码规则,系统自动生成商品编码。当前库存数量、库存下限数量均要大于等于0。商品营运部每

    【需求描述】:

    (1)超市业务按部门开展,目前该超市有采购部、销售部、运营部等,每个员工只能在一个部门;员工在入职时需要登记员工姓名、性别、出生日期、身份证、联系电话等信息。
    (2)超市销售的商品由超市运营部门决定,运营部门在确定销售的商品后,录入商品的详细信息,包含:商品编码、商品名称、条形码、产地、生产厂家、规格型号、商品进价、商品销售价、当前库存数量、库存下限数量等信息。其中,规格型号直接用文本表示;商品编码自行设计编码规则,系统自动生成商品编码。当前库存数量、库存下限数量均要大于等于0。商品营运部每天结束后需要统计商品的库存情况,若商品的当前库存数量小于等于库存下限时,这些商品不再放入货架进行销售,当补充了货源后再行销售。
    (3)销售部的收银员通过商场POS机完成销售,收银员通过扫描商品完成销售并记录销售流水相关信息,包含销售时间、销售商品、销售商品单价、销售商品数量、销售商品金额、销售总金额、收银员等信息。在收银员完成销售收款后,根据销售的商品数量更新销售商品的库存数量,更新算法为:该商品的当前库存数量 – 销售数量;更新后若该商品的当前库存数量小于等于该商品的库存下限数量,系统自动生成需要采购的商品信息,包含商品编码、当前库存量、生成时间等。
    (4)采购部门的采购员每天统计销售后生成的采购商品信息并进行货源组织,完成商品的采购;当采购商品到货后,采购员根据到货情况完成商品的入库,在入库时需要录入商品的进货数量,更新商品的当前库存数量,更新算法为:该商品的当前库存数量 + 进货数量。

    数据模型设计

    1 根据需求描述,设计该系统的概念数据模型,可以用E-R图,也可以用PowerDesigner工具;(10分)
    在这里插入图片描述
    2 将设计的概念数据模型转换为关系数据库的逻辑数据模型(即转换成关系数据库的关系)。(10分)
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

    完整性设计

    在这里插入图片描述
    在这里插入图片描述

    数据定义操作

    1 采用SQL语言完成部门、员工和商品的关系模式定义,并完成相关的完整性定义;(5分)
    CREATE TABLE dept(
    did INT NOT NULL  PRIMARY KEY AUTO_INCREMENT,/*部门id 不空且自增长*/
    dname varchar(10) UNIQUE /*部门名 唯一*/
    );
    CREATE TABLE emp(
    eid INT NOT NULL  PRIMARY KEY AUTO_INCREMENT,/*员工id 不空且自增长*/
    ename varchar(10),
    sex varchar(2),
    birthday DATE,
    sfz varchar(20) UNIQUE,/*身份证 唯一*/
    phone varchar(15), 
    did int,
    FOREIGN KEY(did) REFERENCES dept(did)
    );
    
    )
    CREATE TABLE goods(
    gid int NOT NULL  PRIMARY KEY AUTO_INCREMENT, /*商品id 不空且自增长*/
    gname varchar(10),/*商品名称*/
    txm varchar(10),/*条形码*/
    cd varchar(30),/*产地*/
    sccj varchar(20),/*生产厂家*/
    ggxh varchar(5),/*规格型号*/
    cpjj double,/*商品进价*/
    cpssj double,/*商品销售价*/
    curnum int,/*当前存库数量*/
    xynum int/*存库下限数量*/
    )
    
    插入的时候要求随机生成编码的sql
    insert into goods VALUES(uuid(),””,””...);
    
    /*销售流水*/
    CREATE TABLE xsls(
    gid int, /*商品id*/
    FOREIGN KEY(gid) REFERENCES goods(gid),/*商品外键*/
    xssj DATE,/*销售时间*/
    xsspdj double,/*销售商品单价*/
    xsspsl int,/*销售商品数量*/
    xsspje double,/*销售商品金额*/
    xsspzje double,/*销售商品总金额*/
    xszje double,/*销售总金额*/
    xsyid int,/*销售员编号*/
    FOREIGN KEY(xsyid) REFERENCES emp(eid)/*销售员外键*/
    )
    2 因销售流水数据量很大,现需要根据销售商品查询商品的销售流水,请叙述如何提高按商品查询销售流水的速度,并根据你设计的数据模型,使用SQL语言完成定义;(3分)
    方法一通过商品的编号创建存储过程,下次直接调用存储过程
    方法二给销售流水表建立索引,可以提升查询速度
    方法三关联了太多的表,要实现ssql优化
    
    CREATE PROCEDURE findsslsbygid(IN in_gid int)
    BEGIN
    SELECT * from xsls where gid = in_gid
    END$$
    3 收银员在收银时只关心商品的销售价格,不能让销售员看到商品的进价信息,请叙述如何限制收银员查看数据的范围,并根据你设计的数据模型,试用SQL语句完成定义。(4分)
    定义一个给收银员看的视图(商品编号,商品名称,商品销售价)。
    CREATE VIEW 收银员
    AS
    SELECT gid 商品编号,gname 商品名称, cpssj 商品销售价
    FROM goods
    

    数据操作

    根据设计的数据模型,采用关系代数完成以下要求

    (1)查询个部门的员工信息,包含部门名称、姓名、性别、出生日期;(2分)
    (2)查询姓名为“董庆”的收银员的所有销售明细,包含:姓名、商品名称、销售数量、销售时间,销售金额;(3分)
    (3)查询在‘2020-1-1 00:00:00’到‘2020-5-10 23:59:59’期间各种商品销售的总金额;(3分)
    (4)查询销售过所有商品的收银员的姓名。(4分)
    在这里插入图片描述

    根据设计的数据模型,采用SQL语言完成以下要求

    1)查询个部门的员工信息,包含部门名称、姓名、性别、出生日期;(2分)
    SELECT eid,ename,sex,birthday from emp,dept where emp.did=dept.did
    (2)查询姓名为“董庆”的收银员的所有销售明细,包含:姓名、商品名称、销售数量、销售时间,销售金额;(3分)
    select gname 商品名称,xsspsl 销售数量,xssj 销售时间,xszje 销售总金额 from xsls,goods where xsyid =(select eid from emp where ename='董庆') and xsls.gid=goods.gid
    (3)查询在‘2020-1-1 00:00:00’到‘2020-5-10 23:59:59’期间各种商品销售的总金额;(3分)
    select xszje 销售总金额 from xsls where xssj BETWEEN 2020-1-1 00:00:00 and 2020-5-10 23:59:594)查询销售过所有商品的收银员的姓名;(4分)
    select ename from xsls,emp where xsls.gid 
    in(select gid from goods) and xsls.eid=emp.eid
    (5)为了提高当前数据库的查询速度,在数据备份的基础上需要将离职人员的销售记录删除。现需将离职人员“张丽丽”及她所有的销售记录删除,请使用SQL语句完成删除操作。(3分)
    delete from xsls where xsyid=(select eid from emp where name='张丽丽')
    

    某同学根据需求描述,设计了商品销售关系模式如下:

    商品销售(商品编码,商品名称,条形码,产地,生产厂家,销售时间、销售数量,销售价,收银员)
    对关系“商品销售”,请回答以下问题:
    1 给出该关系模式的函数依赖集;(4分)
    (商品编码,收银员)->(销售时间,销售数量,销售价)
    (商品编码)->(商品名称,条形码,产地,生产厂家)
    2 给出该关系模式的候选码;(2分)
    候选码:商品编码 + 收银员
    3 该关系模式存在哪些问题?(3分)
    关系模式存在部分依赖,如条形码只依赖于商品编码,而不依赖于该关系模式的候选码
    4 判断该关系模式是否达到了3NF,说明理由。若没有达到3NF,请分解使其达到3NF。(4分)
    没有到达第三范式,因为关系模式含有部分依赖属于1NF,如条形码只依赖于商品编码,而不依赖于该关系模式的候选码。
    R1(商品编码,收银员,销售时间,销售数量,销售价)
    R2(商品编码,商品名称,条形码,产地,生产厂家)

    根据自己设计的数据模型完成以下要求

    1 在收银员完成收银操作写入销售明细更新商品库存时,要检查该商品的当前库存数量,若当前库存数量小于或等于该商品的库存下限数量,系统自动生成需要采购的商品信息,包含商品编码、当前库存量、生成时间等。请使用SQL语言实现触发器完成采购信息的自动生成。(8分)
    CREATE TRIGGER sccg 
    AFTER UPDATE
    ON goods FOR EACH ROW
    BEGIN
        SELECT gid,curnum,NOW() from goods where curnum < xynum;
    END
    2 根据你设计的数据模型,请分析收银员在完成一笔销售的收银事务工作时要实现哪些数据更新操作?为了保证数据的一致性,请使用事务的方法写出数据更新的过程(可以采用伪代码)。(6分)
    BEGIN TRANSACTION
    UPDATE SET curnum=curnum-购买数量 
    from goods 
    where gid=购买商品的id
    COMMIT
    还可以给该事务加锁,利用三级分锁协议,XS锁在事务中全程加锁,保证不丢失,不读脏数据,可重复读
    

    3 假设有两位顾客同时购买同一条码的商品(顾客甲买了2件,顾客乙买了3件),收银员在收银结算事务修改该商品的库存数量(记为数据项X)部分的调度如下表所示。
    在这里插入图片描述
    X的值是97,属于最终不一致性
    (2) 引入独占锁指令Xlock()和解锁指令Unlock(),请重写上述调度,要求满足两段锁协议。
    在这里插入图片描述

    展开全文
  • 数据库课程设计报告的题目是大型超市信息管理系统,其主要目的是调研大型超市的业务流程,设计一个用于超市工作人员信息管理、商品采购管理、商品销售管理的信息系统。 超市信息管理系统充分运用计算机管理信息技术...
  • 本次课程设计的题目是超市管理系统, 该超市公司的业务管理规则如下: (1)该超市公司有若干仓库,若干连锁商店,供应若干商品。 (2)每个商店有一个经理和若干收银员,每个收银员只在一个商店工作。 (3)每个...
  • 超市进销存系统 数据库设计报告

    万次阅读 多人点赞 2017-02-25 18:20:53
    另外:本系统前期主要使用了软件PowerDesigner,从需求分析到模型设计、约束条件、视图、业务规则等,都是用该软件。 产品简介超市进销存系统主要为商品进货上架、销售收银、仓库存储提供线上管理功能。目标...

    超市进销存系统 数据库设计报告

    注意:本设计报告省略了需求分析部分、实体说明、联系说明、索引说明等,重点是数据库的实现过程以及sql语言的编写以及其他一些我认为的重点展示
    另外:本系统前期主要使用了软件PowerDesigner,从需求分析到模型设计、约束条件、视图、业务规则等,都是用的该软件。

    产品简介

    超市进销存系统主要为商品的进货上架、销售收银、仓库存储提供线上管理的功能。

    目标客户:中小型超市

    客户的业务需求:

    1. 改变传统的人工管理,实现日常管理信息化;

    2. 通过对库存和销售信息的快速查询和处理,提高商品的采购的速度和科学性;

    3. 提升超市管理水平,降低经营成本,提高工作效率。

    本系统的总体框架
    这里写图片描述


    数据模型

    BPM模型
    这里写图片描述
    CDM 模型
    这里写图片描述
    PDM模型
    这里写图片描述

    部分存储器、触发器、函数的设计

    本人负责的是关于存货模块的存储器、触发器、函数设计,这里举了几个例子:

    • 存储器设计1、
    /*具有“采购员”职称的员工加薪15%,“理货员”加薪10%,“收银员”加薪5%,“经理”加薪20%*/
    create procedure proc_raise
    as
    declare cur cursor for select workerNum,job from t_user
    declare @increment decimal(2,1)
    declare @num int
    declare @tjob varchar(50)
    open cur
    fetch next from cur into @num,@tjob
    while(@@fetch_status=0)
    begin
    if @tjob='采购员' set @increment=0.15
    else if @tjob='理货员'set @increment=0.1
    else if @tjob='收银员' set @increment=0.05
    else if @tjob='经理' set @increment=0.2
    update t_user
    set salary=salary*(1+@increment)
    where workerNum=@num
    fetch next from cur into @num,@tjob
    end
    close cur
    deallocate cur
    go

    测试结果:
    未执行存储器之前的员工表:
    这里写图片描述

    执行加薪功能的的存储器之后:

    execute proc_raise

    这里写图片描述

    • 存储器设计2、
    /*清空库存信息表:t_inventory钟库存量为0的商品信息*/
    create procedure proc_amount0
    as
    declare cur cursor for select goodsNum,amount from t_inventory
    declare @gnum int
    declare @gamount int
    open cur
    fetch next from cur into @gnum,@gamount
    while(@@fetch_status=0)
    begin
    if @gamount=0
    delete from t_inventory
    where goodsNum=@gnum
    fetch next from cur into @gnum,@gamount
    end
    close cur
    deallocate cur

    测试结果:
    未执行存储器之前的t_inventory:
    这里写图片描述

    执行存储器:

    execute proc_amount0

    这里写图片描述

    • 用户自定义函数设计1、
    /*输入商品编号,在t_goodsOn表上将该商品标注为' 促销-买一送一'*/
    
    create function dbo.func_num_cuxiao(@gnum int)
    returns varchar(50)
    as
    begin
    declare @gname varchar(50);
    declare @gprice int;
    select @gname=goodsName from t_goodsOn where t_goodsOn.goodsNum=@gnum;
    select @gprice=price from t_goodsOn where t_goodsOn.goodsNum=@gnum;
    set @gname=@gname+'促销-买一送一';
    return @gname
    end
    
    declare @t varchar(50)
    execute @t= dbo.func_num_cuxiao "01";
    update t_goodsOn
    set goodsName=@t where goodsNum=01 ;
    select *from t_goodsOn
    

    测试结果:
    这里写图片描述

    • 用户自定义函数设计2、
    /*对于库存量小于10的商品,备注remark里面添加“库存紧张!!!”的字段*/
    create function dbo.func_less(@gnum int)
    returns varchar(50)
    as 
    begin
    declare @mark varchar(50)
    set @mark='库存紧张!!!'+(select remark from t_inventory where goodsNum=@gnum)
    return @mark
    end
    
    create procedure proc_tmp
    as
    declare cur cursor for select goodsNum from t_inventory
    declare @gnum int
    declare @ta int 
    declare @t varchar(50)
    open cur
    fetch next from cur into @gnum
    while(@@fetch_status=0)
    begin
    select @ta=amount from t_inventory where goodsNum=@gnum
    if @ta<10
    begin
    execute @t= dbo.func_less @gnum ;
    update t_inventory
    set remark=@t where goodsNum=@gnum ;
    end
    fetch next from cur into @gnum
    end
    close cur
    deallocate cur
    

    结果测试:
    原来的库存信息表t_inventory:
    这里写图片描述

    execute proc_tmp

    执行之后:
    这里写图片描述

    • 触发器设计1、
    /*触发器:t_goodsBuy商品进价变,t_incentory的同商品的进价也变,售价+(现进价-原进价),t_goodsSale商品售价也变*/
    create trigger tri_alter_cost
    on dbo.t_goodsBuy
    after insert
    as
    begin 
    declare @num int;
    declare cur cursor for select goodsNum from inserted;
    open cur;
    fetch from cur into @num;
    while @@FETCH_STATUS=0
    begin
    update t_inventory
    set cost=(select cost from inserted where goodsNum=@num)
    where goodsNum=@num;
    update t_inventory
    set price=price+(select cost from inserted where goodsNum=@num)-(select cost from t_inventory where goodsNum=@num)
    where goodsNum=@num;
    update t_goodsSale
    set price=price+(select cost from inserted where goodsNum=@num)-(select cost from t_inventory where goodsNum=@num)
    where goodsNum=@num;
    fetch next from cur into @num;
    end
    close cur;
    end
    

    结果测试:
    测试结果:
    原来的库存表t_inventory:
    这里写图片描述
    原来的销售表t_goodsSale:
    这里写图片描述

    /*在采购员进货,增加t_goodsBuy之后:*/
    insert into t_goodsBuy
    values('01','口香糖','03','10','150','盒','绿箭公司','2016/8/23'),
          ('02','方便面','01','10','10','箱','康师傅公司','2016/8/23'),
          ('03','可乐','02','15','12','箱','可口可乐公司','2016/8/23'),
          ('04','饼干','04','11','15','箱','乐事公司','2016/8/23');
    

    t_inventory库存表:
    这里写图片描述
    t_goodsSale销售表:
    这里写图片描述

    执行成功的SQL源码:

    1. 建表、创建索引
    
    /*==============================================================*/
    /* Table: t_buyer                                               */
    /*==============================================================*/
    create table t_buyer (
       workerNum            int                  not null,
       workerName           varchar(50)          not null,
    )
    go
    
    alter table t_buyer
       add constraint PK_T_BUYER primary key nonclustered (workerNum)
    go
    
    /*==============================================================*/
    /* Index: Index_workerNum                                       */
    /*==============================================================*/
    create index Index_workerNum on t_buyer (
    workerNum ASC
    )
    go
    
    /*==============================================================*/
    /* Index: Index_workerName                                      */
    /*==============================================================*/
    create index Index_workerName on t_buyer (
    workerName  ASC
    )
    go
    
    /*==============================================================*/
    /* Table: t_cashier                                             */
    /*==============================================================*/
    create table t_cashier (
       workerNum            int                  not null,
       workerName           varchar(50)          not null,
       workTime             varchar(5)           not null
    )
    go
    
    alter table t_cashier
       add constraint PK_T_CASHIER primary key nonclustered (workerNum)
    go
    
    /*==============================================================*/
    /* Index: Index_workerNum                                       */
    /*==============================================================*/
    create index Index_workerNum on t_cashier (
    workerNum ASC
    )
    go
    
    /*==============================================================*/
    /* Index: Index_workerTime                                      */
    /*==============================================================*/
    create index Index_workerTime on t_cashier (
    workTime ASC
    )
    go
    
    /*==============================================================*/
    /* Table: t_goodsBuy                                            */
    /*==============================================================*/
    drop  table t_goodsBuy 
    create table t_goodsBuy (
       goodsNum             int                  not null,
       goodsName            varchar(50)          not null,
       workerNum            int                  not null,
       cost                 int                  not null,
       amount               int                  not null,
       units                varchar(50)          not null,
       suppler              varchar(50)          not null,
       date                 varchar(50)          not null
    )
    go
    
    alter table t_goodsBuy
       add constraint PK_T_GOODSBUY primary key nonclustered ()
    go
    
    /*==============================================================*/
    /* Index: Index_goodsName                                       */
    /*==============================================================*/
    create index Index_goodsName on t_goodsBuy (
    goodsName ASC
    )
    go
    
    /*==============================================================*/
    /* Index: Index_date                                            */
    /*==============================================================*/
    create index Index_date on t_goodsBuy (
    date ASC
    )
    go
    
    /*==============================================================*/
    /* Index: Index_wokerNum                                        */
    /*==============================================================*/
    create index Index_wokerNum on t_goodsBuy (
    workerNum ASC
    )
    go
    
    
    
    /*==============================================================*/
    /* Table: t_goodsOn                                             */
    /*==============================================================*/
    create table t_goodsOn (
       goodsNum             int                  not null,
       goodsName            varchar(50)          not null,
       cost                 int                  not null,
       prcie                int                  not null,
       amount               int                  not null,
       units                varchar(50)          not null,
       remark               varchar(300)         null,
       workerNum            int                  not null
    )
    go
    
    alter table t_goodsOn
       add constraint PK_T_GOODSON primary key nonclustered (goodsNum, workerNum)
    go
    
    /*==============================================================*/
    /* Index: Index_amount                                          */
    /*==============================================================*/
    create index Index_amount on t_goodsOn (
    amount ASC
    )
    go
    
    /*==============================================================*/
    /* Table: t_goodsOnOut                                          */
    /*==============================================================*/
    create table t_goodsOnOut (
       workerNum            int                  not null,
       goodsNum             int                  not null,
       goodsName            varchar(50)           not null,
       amount               int                  not null
    )
    go
    
    alter table t_goodsOnOut
       add constraint PK_T_GOODSONOUT primary key nonclustered (workerNum, goodsNum, t_g_workerNum)
    go
    
    /*==============================================================*/
    /* Index: Index_workerNum                                       */
    /*==============================================================*/
    create index Index_workerNum on t_goodsOnOut (
    workerNum ASC
    )
    go
    
    /*==============================================================*/
    /* Index: Index_goodsNum                                        */
    /*==============================================================*/
    create index Index_goodsNum on t_goodsOnOut (
    goodsNum ASC
    )
    go
    
    /*==============================================================*/
    /* Table: t_goodsSale                                           */
    /*==============================================================*/
    drop table t_goodsSale
    create table t_goodsSale (
       workerNum            int                  not null,
       goodsNum             int                  not null,
       goodsName            varchar(50)          not null,
       prcie                int                  not null,
       amount               int                  not null,
       units                varchar(50)          not null
    )
    go
    
    alter table t_goodsSale
       add constraint PK_T_GOODSSALE primary key nonclustered (goodsNum)
    go
    
    /*==============================================================*/
    /* Index: Index_workerNum                                       */
    /*==============================================================*/
    create index Index_workerNum on t_goodsSale (
    workerNum ASC
    )
    go
    
    /*==============================================================*/
    /* Index: Index_profit                                          */
    /*==============================================================*/
    --create index Index_profit on t_goodsSale (
    --profit ASC
    --)
    --go
    
    /*==============================================================*/
    /* Index: Index_amount                                          */
    /*==============================================================*/
    create index Index_amount on t_goodsSale (
    amount ASC
    )
    go
    
    /*==============================================================*/
    /* Table: t_goosClass                                           */
    /*==============================================================*/
    drop table t_goodsClass
    create table t_goodsClass (
       classNum             int                  not null,
       className            varchar(50)          not null,
       goodsNum             int                  not null,
        goodsName            varchar(50)          not null,
       workerNum            int                  not null
    
    )
    go
    
    alter table t_goodsClass
       add constraint PK_T_GOOSCLASS primary key nonclustered (goodsNum)
    go
    
    /*==============================================================*/
    /* Index: Index_goodsName                                       */
    /*==============================================================*/
    create index Index_goodsName on t_goodsClass (
    goodsName ASC
    )
    go
    
    /*==============================================================*/
    /* Index: Index_className                                       */
    /*==============================================================*/
    create index Index_className on t_goodsClass (
    className ASC
    )
    go
    
    /*==============================================================*/
    /* Table: t_inventory                                           */
    /*==============================================================*/
    create table t_inventory (
       goodsNum             int                  not null,
       goodsName            varchar(50)          not null,
       className            varchar(10)             not null,
       amount               int                  not null,
       cost                 int                  not null,
       prcie                int                  not null,
       units                varchar(50)          not null,
       remark               varchar(300)         null,
    )
    go
    
    alter table t_inventory
       add constraint PK_T_INVENTORY primary key nonclustered (goodsNum, workerNum)
    go
    
    /*==============================================================*/
    /* Index: Index_className                                     */
    /*==============================================================*/
    create index Index_className on t_inventory (
    className ASC
    )
    go
    
    /*==============================================================*/
    /* Index: Index_amount                                          */
    /*==============================================================*/
    create index Index_amount on t_inventory (
    amount ASC
    )
    go
    
    /*==============================================================*/
    /* Table: t_manager                                             */
    /*==============================================================*/
    create table t_manager (
       workerNum            int                  not null,
       workerName           varchar(50)          not null
    )
    go
    
    alter table t_manager
       add constraint PK_T_MANAGER primary key nonclustered (workerNum)
    go
    
    /*==============================================================*/
    /* Index: Index_workerNum                                       */
    /*==============================================================*/
    create index Index_workerNum on t_manager (
    workerNum ASC
    )
    go
    
    /*==============================================================*/
    /* Index: Index_workerName                                      */
    /*==============================================================*/
    create index Index_workerName on t_manager (
    workerName ASC
    )
    go
    
    /*==============================================================*/
    /* Table: t_tallyClerk                                          */
    /*==============================================================*/
    create table t_tallyClerk (
       workerNum            int                  not null,
       workerName           varchar(50)          not null
    )
    go
    
    alter table t_tallyClerk
       add constraint PK_T_TALLYCLERK primary key nonclustered (workerNum)
    go
    
    /*==============================================================*/
    /* Index: Index_workerNum                                       */
    /*==============================================================*/
    create index Index_workerNum on t_tallyClerk (
    workerNum ASC
    )
    go
    
    /*==============================================================*/
    /* Index: Index_workerName                                      */
    /*==============================================================*/
    create index Index_workerName on t_tallyClerk (
    workerName  ASC
    )
    go
    
    /*==============================================================*/
    /* Table: t_user                                                */
    /*==============================================================*/
    drop table t_user
    create table t_user (
       workerNum            int                  not null,
       workerName           varchar(50)          not null,
       workerSex            varchar(5) check(workerSex in('男','女'))  not null,
       workerAge            int check(workerAge>=18 and workerAge<=60) not null,
       workTime             varchar(5)           not null,
       job                  varchar(50) check(job in('采购员','收银员','理货员','经理')) not null,
       salary               int                  not null
    )
    go
    
    alter table t_user
       add constraint PK_T_USER primary key nonclustered (workerNum)
    go
    
    /*==============================================================*/
    /* Index: Index_workerNum                                       */
    /*==============================================================*/
    create index Index_workerNum on t_user (
    workerNum ASC
    )
    go
    
    /*==============================================================*/
    /* Index: Index_workerName                                      */
    /*==============================================================*/
    create index Index_salary on t_user (
    salary DESC
    )
    go
    
    1. 创建视图

    说明:视图的作用包括能够简化数据的操作、提供数据库的安全性等等,所以因为需要适时查看上架商品数量、库存数量,以及时补足,同时,查看销售量靠前的商品,优化销售方案等原因,设计了以下三个视图。

    /*==============================================================*/
    /* View: View_goodsOnAmount 查询上架商品数量视图                */
    /*==============================================================*/
    create view lihuoyuan.View_goodsOnAmount as
    select
    goodsNum,
    goodsName,
    amount
    from
    t_goodsOn
    with check option
    go
    
    /*==============================================================*/
    /* View: View_goodsSale  查询商品销售数量视图                   */
    /*==============================================================*/
    create view View_goodsSale as
    select
    goodsNum,
    goodsName,
    amount
    from
    t_goodsSale
    go
    
    /*==============================================================*/
    /* View: View_inventoryAmount  查询商品库存量视图               */
    /*==============================================================*/
    create view caigouyuan.View_inventoryAmount as
    select
    goodsNum,
    goodsName,
    amount
    from
    t_inventory
    with check option
    go
    
    
    
    展开全文
  • 调研大型超市的业务流程,设计一个用于超市工作人员信息管理、商品采购管理、商品销售管理的信息系统。支持会员卡业务。顾客可以从总服务台上查询本超市有无指定的商品、查询自己的积分情况。 1.基本信息管理:包括...
  • 数据库《小型超市管理系统

    热门讨论 2011-01-21 13:17:36
    而大型的超市管理系统功能过于强大而造成操作繁琐降低了小超市的工作效率。 超市管理系统是市场上最流行的超市上常用的系统之一,它主要包含以下几个模块:系统权限的设定、原始数据录入、数据的汇总及查询等。从而...
  • 超市的业务系统做调研,进行需求分析,然后来做一个超市管理系统。
  • 基于Java的超市货物管理系统的设计与实现摘要:在超市日常管理中,商品进、销、存等决策以经验为主,缺乏实时分析功能,管理人员对及时传递资料要求始终得不到满足。随着超市形态高速发展,其经营管理也变得愈...

    基于Java的超市货物管理系统的设计与实现

    摘要:在超市日常管理中,商品的进、销、存等决策以经验为主,缺乏实时分析功能,管理人员对及时传递资料的要求始终得不到满足。随着超市形态的高速发展,其经营管理也变得愈加复杂,日常所需要处理的数据量也逐渐增大,商业运转的中间环节也越来越多,原始的人工管理已无法应对这复杂的市场。本论文采纳Mysql构建数据库,利用SSH框架、Java语言进行开发,系统基于业务逻辑、数据、用户界面分离的多层次体系架构,以超市收银业务为基础,结合Spring技术,对小型超市的开发做出了一个较为全面的专研,开发出了一套超市收银系统,以便于完成信息的分析和共享。

    关键词:超市管理;收银管理;货物管理;Java

    Abstract:In the daily management of the supermarket,the decision-making of goods such as entering,selling and storing is mainly based on experience,lacking the function of real-time analysis,and the management personnel's request for timely transmission of information is always not satisfied. With the rapid development of supermarket form,its management has become more complex,the amount of data needed to be processed in daily life has gradually increased,and there are more intermediate links in business operation,so the original manual management can no longer deal with this complex market. This thesis adopts MySQL to construct database,develops with SSH framework and Java language. The system is based on multi-level architecture of business logic,data and user interface separation. Based on the silver business,combined with Spring technology,a more comprehensive research on the development of small supermarkets has been made,and a set of supermarket cash register system has been developed to facilitate the analysis and sharing of information.

    Keywords: Supermarket management;Cash register management;Goods management;Java

    eef33f4b7667821558f46c33ccda4c55.png

    f76276c4dfb29e4e79425b7f1ec9963c.png

    f52d66e026284356e11150379fe66199.png

    8db05db9b3965f46a9f7c4d72a94125b.png

    41928836132a92512b6db68430300028.png

    f52f8815d62411e1168a079b52f012bb.png

    2c654f3c8aa0fb462dacf9fbdfc5fbcf.png

    073ffa36979c266a1098eeb3ac2e4f04.png

    8f68c68413b4986227dba448e2a701f4.png

    b0d92cfe04061326c1c819547fdee1f1.png

    d80aa9be4b1e28f9db4a48b346d2c24e.png

    4f22c769a9cdf391f49ab4208963bfd1.png

    30ef68b443c9847e44e260bba5d07fe2.png

    1dbde7fc1c81c12e1704c9afe8f836f0.png

    9ba32572b89bb9b29a296a3c85b5cf97.png

    8e16a7b484d0cb28753be868909dc50b.png

    e0b063d8b58e158c7c13424eeea7befb.png

    0cc4d4a9a736061f30d10898ee021883.png

    展开全文
  • 针对超市的特点,为了帮助超市解决现在面临的问题,提高小型超市的竞争力,我们将开发以下系统:前台POS销售系统、后台管理系统,其中这两个子系统又包含其它一些子功能。 1.4应用范围 本系统适应于各种小型的超市。...
  •  本系统针对商品销售管理的业务范围及工作特点,设计了基于智能客户端架构的超市收银系统,可以全面实现对商品销售、付款、收款和库存等业务的计算机管理,大大减轻了超市收银工作人员的工作量,全面提高了超市收银...
  • 本论文采纳Oracle构建数据库,利用SSH框架、Java语言进行开发,系统基于业务逻辑、数据、用户界面分离的多层次体系架构,以超市收银业务为基础,结合Spring技术,对小型超市的开发做出了一个较为全面的专研,开发出...

    技术:Java、JSP、框架等
    摘要:

    随着网络的遍及,计算机技术的疾速开展,现有的人工收银模式,已经无法顺应时代的发展,特别是近些年来,随着超市规模、商品数量、业务的增加,超市收银系统的高效方便快捷,可以很方便的查看库存、销售数据、并且指引小型超市的进货方向,成为很多小型超市的首选。本论文采纳Oracle构建数据库,利用SSH框架、Java语言进行开发,系统基于业务逻辑、数据、用户界面分离的多层次体系架构,以超市收银业务为基础,结合Spring技术,对小型超市的开发做出了一个较为全面的专研,开发出了一套超市收银系统,以便于完成信息的分析和共享。

    关键词:超市收银管理; 超市管理

    目录:
    1 绪论        1
    1.1课题背景        1
    1.2 国内外研究现状        1
    1.3 目的和意义        1
    1.4 系统设计思想        2
    1.5  系统开发环境        2
    1.5.1  Spring Tool Suite简介        2
    1.5.2  Spring Boot简介        3
    1.5.3  JPA技术        3
    1.5.4  Maven简介        3
    1.5.5  B/S简介        4
    2可行性分析        5
    2.1  操作可行性        5
    2.2  经济可行性分析        5
    2.3  技术可行性        5
    3需求分析        6
    3.1  功能需求分析        7
    3.1.1  用例图        7
    3.1.2  系统类图        8
    3.2  非功能性需求        8
    4  总体设计        9
    4.1  系统模块总体设计        9
    4.2  数据库设计        10
    4.2.1  数据库设计概述        10
    4.2.2  数据分析        10
    4.3数据库的详细设计        10
    4.3.1  E-R图        11
    4.3.2  数据表的设计        14
    5 详细设计        17
    5.1  系统运行平台设计        18
    5.2  系统主界面设计        18
    5.3  界面层与前台交互设计        19
    5.4  SpringBoot下的Druid数据库连接池        19
    5.5  JPA配置        19
    5.6  Spring Security配置        19
    5.7  DAO组件        21
    5.8  功能模块实现        21
    5.8.1  管理员管理模块设计与实现        21
    5.8.2  商品管理模块        22
    5.8.3  供应商管理功能模块        25
    5.8.4  会员管理模块        27
    5.8.5  仓库管理模块        28
    5.8.6  类别管理模块        30
    5.8.7  进货单管理模块        31
    5.8.8  销售查看模块        32
    5.8.9  收银操作模块        33
    6 测试        35
    6.1  概念        35
    6.2  测试的任务和目的        35
    6.3  软件测试的步骤        35
    6.4  功能测试        35
    6.5  数据应用测试        36
    6.7  兼容性测试        38
    总结        39
    致谢        41
    外文资料        42
    中文翻译        49

    论文字数:18667
    包含资料:

     

    截图:
     

    展开全文
  • 本系统是为超市的信息化管理而设计开发的超市管理系统,采用的是PowerBuilder9.0+SQL 2000...系统设计部分主要介绍了系统功能设计和数据库设计;系统实现部分列出了几个主要的程序框图,并附带了一些主要的窗口和程序
  • 医药销售管理系统 数据库课程设计

    热门讨论 2009-07-05 18:26:53
    开发工作量:本系统开发经过一周左右时间,进行了建立数据库的必要性和可行性分析,需求分析,数据库的概念设计、逻辑设计、物理设计数据库的实现、运行、维护以及相应前台主要功能模块开发。...
  • 论文简单地阐述了超市销售系统的开发背景、设计目标以及业务流程,针对该系统进行市场需求分析、功能描述、数据库的设计,详细地描述了整个系统的设计思路及其开发过程。全文按照软件开发生命周期,分为可行性...
  • 近年来,中国医药行业迅速发展,药店企业多业态经营,仓储式大型超市、中等规模超市、便利连锁综合发展。随着规模扩大,传统...本系统设计中考虑和克服了上述问题,实现了企业管理工作的系统化、规范化和自动化。
  • 任务管理平台
  • 原标题:Java毕业设计——超市积分管理系统项目设计 Java毕业设计——超市积分管理系统项目设计超市积分管理系统是典型的数据库信息管理系统,整个项目的设计、部署、实施具有信息管理系统的典型代表性,所以,作为...
  • 2个另外独立完整的数据库课程设计:图书馆管理系统、小型超市管理系统 4、部分源文件文件夹里含文档里画一些流程图、CDM图之类、还有生成SQL脚本 5、成品文件夹只含一个完成的数据库设计。 说明: 由于...
  • 学生实习管理系统专门用于收集、存蓄和加工学生实习信息数据,最终输出统计报表的业务管理系统,从实际上解决了上述问题,管理人员也可以快速而准确的评价学生的实习情况。 二、本课题国内外开发动态 学生实习管理...
  • 数据库课程设计_大作业_超市管理系统设计与开发超市管理系统设计与开发_docx_ 数据库课程设计_大作业_学生选课管理系统_-2_docx 数据库课程设计_大作业_学生选课管理系统_docx_ 数据库课程设计_大作业_人事管理信息...
  • 超市积分管理系统是典型的数据库信息管理系统,整个项目的设计、部署、实施具有信息管理系统的典型代表性,所以,作为毕业设计项目容易演示,并且便于将大学中所学到知识融合进去,在模块设计业务流程上都比较...
  • 一、基本信息 标题:基于SQL环境下超市管理系统的设计与实现 时间:2017 来源:智能计算机与应用 关键词:管理系统;...主要介绍了系统功能设计数据库设计系统详细设计部分说明了几个主要模块...
  • 3 系统设计 4 4.1 设计思想 4 4.2 系统功能结构图 4 4.3模块功能设计 4 4 系统数据库设计 5 4.1系统数据库的建立 5 4.2 系统E-R图 6 4.3 各个数据表创建 7 4.4创建相关视图 9 4.5存储过程设计 9 4.6 数据库的连接 ...
  • 关于美食网上订餐系统数据库设计,详细,有需求分析,业务流程图,数据流图,EER图,范式判断,候选码证明。 我国现在使用订餐方式多是电话订餐,这样不仅慢,还影响饭店营运。进行网上订餐是新型订餐方法,...
  • com.shuangyulin.dao包(业务逻辑处理层): 处理所有的业务逻辑,主要有控制层调用。 com.shuangyulin.servlet包(控制层):前台jsp界面层向此提交请求,调用业务层进行处理,根据处理结果跳转到不同的界面层。 ...
  • 超市管理信息系统

    2018-10-24 11:29:51
    超市的进销存信息管理系统是针对超市人事处的大量业务处理工作而开发的管理软件,主要用于超市商品管理,总体任务是实现超市信息关系的系统化、科学化、规范化和自动化,其主要任务是用计算机对商品各种信息进行日常...

空空如也

空空如也

1 2 3 4 5 6
收藏数 119
精华内容 47
关键字:

数据库超市的业务系统设计