毕业设计:数据库设计
功能分析:
系统主要实现前台用户和后台管理员两大功能模块,用户功能主要提供给阅读馆会员的用户使用,包括用户的登录,查询会员办理日期、到期日期、缴费金额、续费提醒;后台管理员功能主要提供给系统的管理员使用,包括登录、增加会员信息、修改会员信息、删除会员信息、分类查询会员信息、自动结算会员费用、计算会员持续时间、会员费用统计、会员数量分期统计等
一、从功能中可以看出,大致分为2大类:管理员和会员用户
接下来我们继续细分!
1*.账号表
从功能看,管理员,仅仅只有一个账号,也不需要什么多余的信息表。而且会员用户也有账号
所以我们可以建一张表专门用来存放账号:
表名为:'account';
设计字段:'a_username'、'a_password'、'jurisdiction';
主键:'a_username';
外键:无;
'a_username'和'a_password'不做多余的解释就是用户和管理员的账号和密码;
'jurisdiction'用来区分权限的,因为我们知道,管理员账号和会员账号权限不一样,也就注定了登录账号不同所跳转到的页面不同。
所以我规定:
'1'为管理员账号;
'2'为普通用户账号;
当然也可以建立两张表,分别用来存放管理员与用户的账号。
我这边就选择用了一张表。
二、接下来我们继续分析。这个系统主要是围绕会员用户设计的。所以数据库的表也应该是针对会员用户的
我们再来看看
用户页面需要实现的功能:用户登录,查询会员办理日期、到期日期、缴费金额、续费提醒
管理员页面需要实现的功能:登录、增加会员信息、修改会员信息、删除会员信息、分类查询会员信息、自动结算会员费用、计算会员持续时间、会员费用统计、会员数量分期统计
其中登录
已经实现
通过功能我们大致可以了解到,我们所需要建立的表应该有:1.用户信息表;2.用户充值记录表;
我们首先从用户信息入手。
我们都知道办理会员卡,我们要获取用户的部分信息,那么我们应该要获取用户的那部分信息呢?在一些正规的图书馆中,用户都是实名制,所以我们所获取的用户信息应该包括:姓名
、性别
、年龄
、身份证号
、手机号
、邮箱
。邮箱我们作为一个可选,毕竟许多广告还是要从邮箱和手机短信上推广的,你们都懂得,嘿嘿嘿。。。通过功能还需要添加上会员办理日期
和到期日期
。
所以我们的用户信息表就可以创建了!
2*.用户信息表:
表名:'vip_userinfo';
字段:'v_id'、'vip_name'、'vip_sex'、'vip_age'、'vip_IdCard'、'vip_phone_number'、'vip_email'、'vip_start_date'、'vip_end_date'、'a_username';
主键:'v_id';
外键:'a_username';
为什么使用'a_username'为外键呢?'a_username'为表'account'中的唯一主键。
我们设计了信息表,那么这个信息对应那个会员用户呢?是不是就需要通过外键进行关联呢?所以我们选择'a_username'作为外键来关联这两张表
接下来我们分析用户消费信息表:
消费信息表比较简单:根据功能判断,此表中,只存储充值记录即可。
3*.用户充值记录表:
表名:'recharge';
字段:'r_id'、'money'、'r_date';
主键:'r_id';
外键:无
这样表我们就创建完了,那么我们来分析一下表与表之间的关系,
首先:
账号表'account'和用户信息表'user'之间:
一个账号只能对应一个用户信息,所以表'account'与表'vip_userinfo'之间是一对一关系;
一个用户信息也只对应一个账号,表'vip_userinfo'与表'account'之间也是一对一关系;
它们通过'a_username'所关联。
然后:
用户信息表'vip_userinfo'与用户充值记录表:'recharge':
一个用户可以有多条充值记录,所以用户信息表'vip_userinfo'与用户充值记录表:'recharge'之间是一对多关系;
而一条充值记录只能对应一个用户,所以用户充值记录表:'recharge'与用户信息表'vip_userinfo'之间是一对一关系;
因为存在1对多关系,所以需要建立中间表,把它们进行关联起来。(注:一对多,多对多,都需要建立中间表)
中间表:
表名:'userinfo_rechange';
字段:'v_id'、'r_id';
主键:'v_id'、'r_id';('v_id'、'r_id';分别是外键,但是它们两个一起构成了唯一索引,所以'v_id'+'r_id'是主键;它们共同构建为了主键)
外键:'v_id'、'r_id';
最后在删除用户时,我多建一张表用来收集用户信息。现在是大数据时代,所以删除用户信息不存在的。只是从正常的管理表中删除,存储到了专门存储收集用户信息的表中,即:"userinfo_collect"表
表名:'userinfo_collect';
字段:'id'、'user_name'、'sex'、'age'、'IdCard'、'phone_number'、'email';
主键:'id';
外键:无;
到这里我们毕业设计的数据库就创建完成了。
可以参考我的mysql教程《mysql入门:创建和删除数据库操作(DDL)》,哦:http://t.cn/Ru0XftA
也可以关注我的文集《mysql入门到提升》http://t.cn/Ru0XO78学习更多关于数据库的知识,哦。
小白出品,不喜勿喷!
生活总会给你第二次机会,叫明天。