购物系统的数据库模式设计与实现 - Go语言中文社区

购物系统的数据库模式设计与实现


购物系统的数据库模式设计与实现

1.系统开发的意义

超市管理作为计算机应用的一个分支,有着手工管理无法比拟的优点。该系统的三大益处有:

(1)大大提高超市的运作效率;

(2)通过全面的信息采集和处理,辅助提高超市的决策水平;

(3)使用本系统,可以迅速提升超市的管理水平,为降低经营成本, 提高效益,增强超市扩张力, 提供有效的技术保障。 因此,开发一套能够为消费者及超市工作人员提提供方便的超市管理系统,将是非常必要的,也是十分及时的。
2.系统概念设计

2.1概念模型(E-R图)

(1)E-R图
在这里插入图片描述

(2)系统E-R图说明

  1. 商店中的用户销售多个商品。多个商品由同一个用户销售

  2. 商店中的所有顾客可以购买多种商品,每种商品可由不同顾客购买;

  3. 每个顾客可以购买多种商品,不同商品可由不同顾客购买;

  4. 每个供货商可以供应多种不同商品,每种商品可由多个供应商供应。

(3)思维导图

2.2关系模式

(1)商品信息表(商品编号、商品名称、商品条形码、商品类别、商品售价、商品进价、促销价格、促销起始日期、促销截止日期、库存量、告警量、计划库存量、生产厂商、供货商编号)

(2)会员表(会员卡号、会员姓名、累积金额、卡内余额、会员密码、注册日期、有效日期)

(3)商品交易表(交易流水号、计数号、交易日期、收银员号(员工编号)、商品编号、商品名称、交易数量、售价、小计、会员卡号)

(4)入库信息表(入库编号、商品编号、商品名称、入库量、总额、供货商名称、入库日期、进货员编号

(5)供货商表(供货商号、供货商名称、供货商地址、供货商电话)

(6)进货单表(进货单编号、进货商品编号、进货商品名称、进货量、进价、总额、供货商名称、进货单生成日期、进货员姓名)

(7)员工信息表(员工编号、工作类型、员工姓名、性别、年龄、身份证号、员工工资、员工电话、居住地址、备注信息)

(8)退货信息表(交易流水号、商品编号、退货数量、退货金额、退货日期)

(9)仓库表(仓库编号,仓库名称,仓库地址)

2.3关系模式规范化说明

(1)商品信息表的主属性是商品编号,其他非主属性完全依赖于主码。商品信息表的建立是为了对商品进行管理。其中,除了基本的商品信息外,如商品编号,名称,价格,存货数量外,还增加了条形码,便于对商品的快速录入

(2)会员表的主属性是会员卡号,其他非主属性完全依赖于主码。并且不存在传递依赖关系,因此该顾客表符合第三范式。会员表的建立是为了对会员进行管理以及根据会员情况进行打折活动。

(3)商品交易表的主属性是交易流水号,其他非主属性完全依赖于主码。商品交易表是对超市所出售商品的统计,分析出各个商品的销售情况,并可生成销售统计图,从而有针对性的进行商品进购。

(4)入库信息表的主属性是入库编号,其他非主属性完全依赖于主码。该表是入库的商品信息进行统计。

(5)供货商表的主属性是供货商号,其他非主属性完全依赖于主码。主要是为了对供货商的管理。

(6)进货单表的主属性是进货单编号,其他非主属性完全依赖于主码。进货单表是通过商品信息表来统计需要进货的信息。

(7)员工信息表的主属性是员工编号,其他非主属性完全依赖于主码。是对员工进行的管理。

(8)退货信息表是为了对顾客所退回商品的信息统计,以便更好的进行商品管理和提高对用户的服务。

(9)仓库表的主属性是仓库编号,其他非主属性完全依赖于主码。主要是对仓库信息的管理。

2.4系统数据库表结构

商品信息表

列名 字段类型 长度 主/外键 是否为空
商品编号 Varchar 10 主键 Not null
商品名称 Varchar 50 Not null
商品条形码 Varchar 50 Not null
商品类别 Varchar 25 Not null
商品售价 Money 4 Not null
商品进价 Money 4 Not null
促销价格 Money 4
促销起始日期 Datetime 8
促销截止日期 Datetime 8
库存量 Int Not null
告警量 Int Not null
计划库存量 Int Not null
生产厂商 Varchar 50
供货商号 Varchar 10 外键 Not null

会员表

列名 字段类型 长度 主/外键 是否为空
会员卡号 Varchar 20 主键 Not null
会员姓名 Varchar 10 Not null
累积金额 Money 4 Not null
卡内余额 Money 4 Not null
会员密码 Varchar 20 Not null
注册日期 Datetime 8 Not null
截止日期 Datetime 8 Not null

商品交易表

列名 字段类型 长度 主/外键 是否为空
交易流水号 Varchar 50 主键 Not null
计数号 Int Not null
交易日期 Datetime 8 Not null
收银员号 Varchar 10 外键 Not null
商品编号 Varchar 10 外键 Not null
商品名称 Varchar 50 Not null
交易数量 Int Not null
售价 Money 4 Not null
小计 Money 4 Not null
会员卡号 Varchar 20 外键

入库信息表

列名 字段类型 长度 主/外键 是否为空
入库编号 Varchar 10 主键 Not null
商品编号 Varchar 10 外键 Not null
商品名称 Varchar 50 Not null
入库量 Int Not null
总额 Money 8 Not null
供货商名称 varchar 50 Not null
入库日期 Datetime 8 Not null
进货员编号 Varchar 10 外键 Not null

供货商表

列名 字段类型 长度 主/外键 是否为空
供货商号 Varchar 10 主键 Not null
供货商名称 Varchar 50 Not null
供货商地址 Varchar 70
供货商电话 Varchar 25

进货单表

列名 字段类型 长度 主/外键 是否为空
进货单编号 varchar 10 主键 Not null
商品编号 Varchar 10 外键 Not null
商品名称 Varchar 50 Not null
进货量 int Not null
进价 money 4 Not null
总额 money 8 Not null
供货商名称 varchar 50 Not null
进货单生成日期 datetime 8 Not null
进货员姓名 varchar 10 Not null

员工信息表

列名 字段类型 长度 主/外键 是否为空
员工编号 Varchar 10 主键 Not null
工作类型 Varchar 25 Not null
员工姓名 varchar 50 Not null
性别 varchar 2 Not null
年龄 varchar 2
身份证号 varchar 50 Not null
员工工资 Money 50 Not null
员工电话 varchar 25 Not null
居住地址 varchar 70
备注信息 varchar 200

员工信息表

列名 字段类型 长度 主/外键 是否为空
员工编号 Varchar 10 主键 Not null
工作类型 Varchar 25 Not null
员工姓名 varchar 50 Not null
性别 varchar 2 Not null
年龄 varchar 2
身份证号 varchar 50 Not null
员工工资 Money 50 Not null
员工电话 varchar 25 Not null
居住地址 varchar 70
备注信息 varchar 200

退货信息表

列名 字段类型 长度 主/外键 是否为空
交易流水号 varchar 50 外键 Not null
商品编号 Varchar 10 外键 Not null
退货数量 int Not null
退货金额 money 4 Not null
退货日期 datetime 8 Not null

仓库表

列名 字段类型 长度 主/外键 是否为空
仓库编号 varchar 10 主键 Not null
仓库名称 Varchar 50 Not null
仓库地址 Varchar 70 Not null

3.数据实施阶段

3.1建立数据库

create database 小型超市管理系统 ;

3.2建立数据表

1.商品基本表的建立

create table 商品信息(

商品编号 varchar(10) primary key,

商品名称 varchar(50) not null,

商品条形码 varchar(50)    not null,

商品类别  varchar(25)  not null,

商品售价  money  not null,

商品进价  money  not null,

促销价格  money,

促销起始日期 datetime,

促销截止日期 datetime,

库存量     int   not null,

告警量     int   not null,

计划库存量 int   not null,

生产厂商   varchar(50) ,

供货商号 varchar(10) not null,

foreign key(供货商号)references 供货商表(供货商号)

);

2.会员表的建立

create table 会员表(

会员卡号   varchar(20) prima4ry key,

会员姓名   varchar(10) not null,

累积金额   money       not null,

卡内余额   money       not null,

会员密码   varchar(20) not null,

注册日期   datetime    not null,

截止日期   datetime    not null

);

3.商品交易表的建立

create table 商品交易表(

交易流水号 varchar(50) primary key,

计数号     int         not null,

交易日期   datetime    not null,

收银员号   varchar(10) not null,

商品编号   varchar(10) not null,

商品名称   varchar(50) not null,

交易数量   int         not null,

售价       money       not null,

小计       money       not null,

会员卡号   varchar(20) not null,

foreign key(收银员号) references 员工信息表(员工编号),

foreign key(商品编号) references 商品信息 (商品编号),

foreign key(会员卡号) references 会员表 (会员卡号)

);

4.入库信息表的建立

create table 入库信息表(

入库编号   varchar(10) primary key,

商品编号   varchar(10) not null,

商品名称   varchar(50) not null,

入库量     int         not null,

总额       money       not null,

供货商名称 varchar(50) not null,

入库日期   datetime    not null,

进货员编号 varchar(10) not null,

foreign key(进货员编号) references  员工信息表(员工编号)

    );

5.供货商表的建立

create table 供货商表(

供货商号     varchar(10)primary key,

    供货商名称   varchar(50) not null,

供货商地址   varchar(70) not null,

供货商电话   varchar(25) not null

    );

6.进货单表的建立

create table 进货单表(

进货单编号     varchar(10) primary key,

商品编号       varchar(10) not null,

商品名称       varchar(50) not null,

进货量         int         not null,

进价           money       not null,

总额           money       not null,

供货商名称     varchar(50) not null,

进货单生成日期 datetime    not null,

进货员姓名     varchar(10) not null,

foreign key(商品编号)references 商品信息(商品编号),

foreign key(进货员姓名)references 员工信息表(员工编号)

    );

7.员工信息表的建立

create table 员工信息表(

员工编号 varchar(10) primary key,

工作类型 varchar(25) not null,

员工姓名 varchar(50) not null,

性别     varchar(2)  check(性别 in ('男','女')),

年龄     varchar(2)  not null,

身份证号 varchar(50) not null,

员工工资 money       not null,

员工电话 varchar(25) not null,

居住地址 varchar(70) not null,

备注信息 varchar(200)not null

    );

8.退货信息表的建立

create table 退货信息表(

交易流水号  varchar(50) not null,

商品编号    varchar(10) not null,

退货数量    int         not null,

退货金额    money       not null,

退货日期    datetime    not null,

foreign key(交易流水号)references 商品交易表(交易流水号),

foreign key(商品编号)references 商品信息(商品编号)

    );

9.仓库表的建立

create table 仓库表(

仓库编号 varchar(10) primary key,

仓库名称 varchar(50) not null,

仓库地址 varchar(70) not null,

);
  1. 总结

通过此次数据库的课程设计增强了自己在数据库中应用SQL语言的灵活性,其中包括,插入、删除、修改、查询,牵涉表和表之间的联系,主键与外主键的定义,约束项的设置,使逻辑更严密。

在学习过程中,我也上网查了不少资料,也看了一些别人设计的小型超市信息系统的设计报告,学以致用,自我创新,独立完成了这份自己的报告,从中从学到用,从用又到学,不断修改,系统更新。
在这里插入图片描述

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_43873062/article/details/85456701
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-08 10:49:29
  • 阅读 ( 1443 )
  • 分类:数据库

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢