机房收费——数据库

数据库让我头疼了好几天,主要是项目开始前没有规划好想要怎么弄。之前的想法是,结账是让固定用户充值的钱减去固定用户退卡的钱,加上临时用户消费的钱。这个算法的前提是临时用户不能充值和退卡。临时用户下机等于退卡,把卡表里的记录删掉。但是问题来了,算临时用户消费的钱的时候要联合卡表和上下机表,这两张表是有主外键约束的,卡表的记录删掉的话,就会报错。

理思路

到底要怎么算钱?不让临时用户充值和退卡好像不太合理?

临时用户上着机卡里的钱不够想充值,难道不让吗?下机等于退卡,一点下机卡表里的余额就变为0了,退卡表里没有记录操作员根据什么退钱?难道要设计成充了多少钱必须消费完,剩的不退,,不太合理吧。

最终的想法是:临时用户也可以充值和退卡,和固定用户唯一的区别就是没有学生信息,收费标准不一样。

卡表的设计

(1)退卡后状态改为“已退卡”
(2)注册的时候,一点击选择用户类型的组合框,就查自动生成卡号。如果注册固定用户且学号已存在,说明该用户注册过,就激活改卡,改变卡的状态和余额,添加一条新的充值记录
(3)在结账的时候把临时用户且已退卡的卡删除

其他问题

主键问题:充值表等的主键设置的是卡号,但是同样的卡号多次充值就会报错。

我的解决方法:把卡号联合日期和时间设成主键
这里写图片描述

师傅的建议:一般都以一个自增长列作为主键

小结

做事情之前要有一个规划,这次体会到文档和图的重要性,如果之前设计数据库的时候画好图,系统的各个功能都画好图,然后按照图开发就比较简单了。其次,学会搜索,网上有好多资源,学会站在巨人的肩膀上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 34
    评论
机房收费管理系统 问题描述 结合我校计算机机房的运作模式,设计一种适合的收费管理系统,能够实现相关的人员检索,计时收费,管理汇总等功能模块。 开发环境 采用C或C++实现,VC++6.0 基本要求 主要功能模块: (1) 登录模块 (2) 上机管理模块 说明:上机登记时,余额不足3元或卡处于挂失状态,则拒绝登记。 每位同学的一次上机形成一条记录,每30秒遍历一次上机记录表,对表中所有正上机字段为TRUE的记录的上机用时增加30秒,同时减少上机卡表中的余额。 (3) 上机卡管理模块 (4) 充值挂失模块 (5) 查找统计模块:统计某天上机的总时数、每次上机的平均时数和机房的收入;某学生上机的次数、上机总时数、每次上机平均时间;挂失和查询余额。 参考的数据结构: 上机卡(卡号,姓名,专业班级,余额,状态),状态有:正常和挂失。 上机记录(卡号,上机日期,开始时间,上机用时,正上机,管理号代码) 上机记录表永久保存,用于事后查询和统计。 设计要求 1) 界面友好,输入信息符合逻辑:如上机时间设定在合理的时间范围。 2) 能从实践生活出发,设计合理的功能模块 3) 各类信息的数据结构明晰 4) 可根据自身生活体验添加相关功能模块。 拓展功能要求 鼓励采用Turbo C/C++、MFC等开发工具,实现彩色或图形操作界面。鼓励引入小型数据作为处理数据的来源,拓展知识面。
评论 34
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值