请问一般“会员卡消费管理系统”中的“充值卡”和“次数卡”如何在数据库中合理建表,以下三种方法那一种更好?是否还有更好的方法?如下:
第一种方法,把所有会员卡(充值卡和次数卡)都使用一个“会员卡表”存放,表中次数卡余额为0(不在此表中反映使用次数),然后再建一个“次数卡表”并设置外键“会员卡号”,“次数卡表”中清晰记录次数卡情况
会员卡表:
会员卡号........会员号.............卡类型.................余额...............开卡时间
1.......................1....................金卡...................1000...............2010-4-5
2........................2....................淋足卡次数卡.......0.................2010-4-6
次数卡表:
次数卡卡号............会员卡号............卡类型......................次数...........使用次数.......开卡时间............失效时间
1.............................2....................... 淋足卡次数卡...........10................5...............2010-4-5............2013-4-5
*******************************************************************************************************************************************
第二种方式,把“充值卡”和“次数卡”合成一张“会员卡表”,次数卡的次数用余额来管理,10代表10次,每消费一次减1
会员卡表:
会员卡号............会员号................卡类型................余额...............开卡时间
1............................1.......................金卡....................1000............2010-4-5
2............................2......................淋足卡次数卡.......10...............2010-4-6
*******************************************************************************************************************************************
第三种方式,把“充值卡”和“次数卡”分成两个表来存放管理
会员充值卡表:
会员卡号...............会员号...............卡类型...............余额...............开卡时间
1...........................1...........................金卡...............1000...............2010-4-6
次数卡表:
次数卡卡号 ........ 会员卡号........卡类型...................次数.........使用次数.........开卡时间...............失效时间
1............................2...................淋足卡次数卡.........10............ 5....................2010-4-5...............2013-4-5
------解决方案--------------------
第一种方法和第三种方法都可以
如果需要更好的满足范式的话 可以三个表
一个表充值卡表 一个次数卡表 再一个表记录卡次数这些信息。
------解决方案--------------------
推荐第三种方式,把“充值卡”和“次数卡”分成两个表来存放管理.
2种不同业务逻辑的卡,分开存储,各玩各的.
------解决方案--------------------
个人建议:
会员卡表 (失效时间放只要放 会员卡表中,失效时间是根据开卡时间计算的吧,总次数放到会员卡里。关联到次数表可以计算剩余次数)
会员卡号........会员号.............卡类型...............余额........总次数.......开卡时间 .... 失效时间
次数卡表 (这里主要记录使用情况 开卡时间失效时间可以去掉,直接一个使用时间就好。记录每次的使用次数)
次数卡卡号............会员卡号............卡类型..............使用次数.......使用时间
------解决方案--------------------
虽然不清楚楼主的业务逻辑是怎么样的
看这些表设计应该不好拓展吧。
1.如果到时候又要增加一种卡型?
2.如果会员要查看消费记录了?
所以觉得只有这两三个表应该不能满足需求
个人觉得应该建立如下表
会员表
会员ID......姓名.......姓别......联系电话......其它信息
卡种类表
种类ID.....种类名称......计算方式
会员卡表
会员卡号.....会员ID.....种类ID.......余额.....开卡时间----是否有效
记录表 (这个表可以考虑分成 充值表跟消费表)
会员卡号.....记录种类...数量/金额.....时间
这样余额有问题时可以根据记录表计算.