超市会员管理(共14页).doc
精选优质文档-倾情为你奉上数据库课程设计-超市会员管理系统学院: 班级: 姓名: 学号: 指导老师: 超市会员管理系统需求分析报告需求分析: 要做超市会员管理系统,首先要了解会员与一般的买家的区别以及成为会员的条件,这就需要我们去了解调查客户(超市方)对于成为会员的要求。调查完毕后要进行的就是对这个系统进行功能的设计和数据库的设计,超市会员管理系统主要是对提供会员的注册以及超市会员管理系统从主要是用于对超市会员的管理以及平时会员的积分及在超市消费金额的统计,而且要记录到会员卡的消费金额中,对会员的消费金额进行累加,最后生成总的消费金额,根据消费的总金额来累加消费积分,最后生成消费的积分添加到会员卡中。超市会员管理系统还能够对相关的优惠政策进行调整,以及对于会员的信息的增删查改和会员卡的管理,例如对会员卡挂失的处理,挂失的会员卡进行删除,使其不再生效。整个系统的设计要能够满足超市对会员的管理以及对超市其他日常事务的管理。需求分析的过程:(1)超市会员管理系统主要是分为两部分,一是会员的注册,以及对自己的信息的更改。第二部分是管理员对会员的管理以及平常的优惠政策的调整。(2)会员通过注册后可以登录超市的会员的管理系统查看近期自己的消费以及会员积分,还可以查看近期的优惠政策,不能修改积分,消费金额以及优惠政策,只能够对自己的个人信息以及密码进行修改。(3)超市会员管理系统的管理员则可以对会员的信息进行增删查改,对挂失的会员卡进行删除,以及对他的消费金额、积分进行修改。还能够对超市的相关优惠政策进行调整。功能描述:1、 申请会员。需要实现加入会员的基本信息,包括:成为会员的基本条件、优惠政策、优惠时间等。2、 实现会员注册。会员的基本信息,包括姓名、性别、年龄、工作单位、联系方式等。3、 会员购物信息。购买物品编号、物品名称、所属种类,数量,价格等。会员返利信息。4、 会员等级。包括会员积分的情况,享受优惠的等级等。对货物流量及消费人群进行统计输出。数据流图:数据字典: 会员信息表:会员的基本信息表表中列名数据类型属性说明idintNot null(主键,自增长)会员编号nameVarchar(8)Not null会员姓名sexVarchar(8)Not null性别AgeIntNot null 年龄TellVarchar(8)Not null电话KidIntNot null(外键)卡号编号WorkVarchar(8)Not null单位 会员购物表:会员的消费记录表中列名数据类型属性说明Uid IntNot null(主键,自增长)购物编号TsidIntNot null(外键)商品IDBnumIntNot null购买数量TpriceIntNot null消费价格IdIntNot null(外键)会员编号 会员卡表:会员的积分、优惠登记、以及卡的基本信息表中列名数据类型属性说明KcidIntNot null(主键)卡号编号Fen IntNot null积分ToppriceIntNot null 消费金额LevelVarchar(8)Not null优惠等级IdIntNot null(外键)会员编号 商品表:商品的详细属性表中列名数据类型属性说明TidIntNot null(主键)商品idClassVarchar(8)Not null商品种类PriceIntNot null单价概念结构设计: 通过需求分析阶段的分析可对整个系统进行建模,然后是建立数据模型,概念结构的设计可分为两步:第一步是抽象数据并设计实体图。第二步是集成实体图,得到全局的概念结构。会员表实体图:会员购物表实体图:会员卡表实体图:商品表实体图:总体E-R图:逻辑结构设计:逻辑结构的实现主要是通过概念模型阶段的E-R图来向关系模型的转变。把实体之间的联系转换为关系模型。会员表(会员id,姓名,性别,年龄,电话,单位,会员卡号)主键:会员id外键:会员卡号会员购物表(购物id,商品号,购买数量,消费金额,会员卡号)主键:购物id会员卡表(会员卡id,会员编号,消费金额,积分,等级)主键:会员卡id商品表(商品id,类别,价格)主键:商品id物理设计阶段:物理设计是把前两阶段进行实施,选取一个具体的工作环境,这个工作环境提供数据储存结构与存取方法,这就是最后一步的物理设计。物理模型图:数据库的实施阶段:超市会员管理系统中最重要的一点是通过表之间的外键联系和触发器来实现数据的一致性和完整性,最终生成的表与表之间的关系如下图所示。因为用户必须参考商品表才能够进行购物,所以需要建立外键来进行约束,而其他表也需要根据用户的id号来进行辨别会员的身份,所以其他的表也需要建立外键来进行约束,不能够说,没有这个会员但是在购物表中也能够随意的插入会员号。所以在建立数据库和表的阶段要继续完善主键和外键以及触发器。1. 建立数据库Create database supermarket;Use supermarket;2. 建立用户表DROP TABLE IF EXISTS user; CREATE TABLE user ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(8) NOT NULL, sex varchar(8) NOT NULL, age int(11) NOT NULL, tell varchar(8) NOT NULL, kid int(11) NOT NULL, work varchar(8) NOT NULL, PRIMARY KEY (id), KEY kid (kid) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;3. 建立购物表DROP TABLE IF EXISTS shopping;CREATE TABLE shopping ( uid int(11) NOT NULL AUTO_INCREMENT, tsid int(11) NOT NULL, bnum int(11) NOT NULL, tprice int(11) NOT NULL, id int(11) NOT NULL, PRIMARY KEY (uid), KEY id (id), KEY tsid (tsid), CONSTRAINT shopping_ibfk_2 FOREIGN KEY (tsid) REFERENCES goods (tid) ON DELETE CASCADE, CONSTRAINT shopping_ibfk_1 FOREIGN KEY (id) REFERENCES user (id) ON DELETE CASCADE) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8;4. 建立会员卡表DROP TABLE IF EXISTS card;CREATE TABLE card ( kcid int(11) NOT NULL AUTO_INCREMENT, fen int(11) NOT NULL, topprice int(11) NOT NULL, level varchar(8) NOT NULL, id int(11) NOT NULL, PRIMARY KEY (kcid), KEY id (id), CONSTRAINT card_ibfk_1 FOREIGN KEY (id) REFERENCES user (id) ON DELETE CASCADE) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;5. 建立商品表DROP TABLE IF EXISTS goods;CREATE TABLE goods ( tid int(11) NOT NULL AUTO_INCREMENT, class varchar(8) NOT NULL, price int(11) NOT NULL, PRIMARY KEY (tid) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;6. 触发器的建立建立一个触发器能够实现在消费表增加消费金额时同时增加会员卡当中的消费总金额的累计。delimiter $create trigger tgafter insert on shoppingfor each rowbeginupdate card set topprice = topprice + new.tprice where id = new.id;end$7.向user(用户表)插入数据 insert into user (name,sex,age,tell,kid,work) values('王磊','女',20,10,'河南');insert into user (name,sex,age,tell,kid,work) values('李磊','男',19,11,'山东');insert into user (name,sex,age,tell,kid,work) values('小明','男',18,12,'安徽');8. 向goods表(商品表)插入数据Insert into goods(class,price) values(2,8);Insert into goods(class,price) values(3,11);Insert into goods(class,price) values(1,6);9. 向card表(会员卡表)插入数据Insert into card(fen,topprice,level,id) values(10,20,1,10);Insert into card(fen,topprice,level,id) values(9,15,2,11);Insert into card(fen,topprice,level,id) values(11,25,3,12);10.向shopping表(购物表)插入数据Insertinto shopping(tsid,bnum,tprice,id) values(4,20,23,10);Insertinto shopping(tsid,bnum,tprice,id) values(5,12,14,11);Insert into shopping(tsid,bnum,tprice,id) values(6,9,12,12);专心-专注-专业