本方案的功能为实现一个简易移动用户资费统计系统的数据库基础表构架,原始需求附在后面
一个好的系统设计应该做到逻辑清晰,扩展性强。
说下我的数据表设计:
1.套餐字典表 zd_tc:
字段 类型 名称
ID int 套餐ID
mc varchar(10) 套餐名称:0、无套餐、
1、普通用户优惠套餐;
2、VIP用户优惠套餐;
999、新入网(新入网可看做特殊套餐)
2.客户信息表 customer_info:
字段 类型 名称
ID int 客户ID
vip char(1) VIP标志(1、普通用户;2、VIP用户)
tcid int 当月套餐(对应套餐字典ID)
tcid_next int 下月套餐
rwrq datetime 入网日期
3.资费字典表 zd_fee:
ID int VIP标志
tcid int 套餐ID(对应套餐字典表ID)
lx char(1) 收费类型(1:通话;2:短信;3:数据)
free_number int 免费长度(如新入网用户的免费时长、
VIP套餐用户的免费时长;
若无免费时长,则为0)
dj numeric(7,2) 标准资费(优惠套餐或新入网为超出免费时长时资费
其他为标准资费)
dw varchar(10) 标准资费单位
4.资费记录表:客户ID
begin_time datetime 起始时间
end_time datetime 终止时间
free_number int 免费时长
jzje numeric(10,2) 优惠后金额
发生资费时:首先判断是否新入网用户,同时根据其VIP标志、当月套餐 ,从资费字典表中查找这次资费记录的优惠力度,写入资费记录表。若该次记录有部分超出免费时长,则总金额需分两部分计算。
其他考虑:
1、当系统业务复杂时,可将资费字典表拆分成通话、短信、数据 三个资费字典表,同时资费记录表也可拆分成通话、短信、数据 三个资费记录表。
2、资费字典表可扩充各种类型的套餐,以适应实际业务需要。
附:原始需求
模拟实现简易的移动用户资费统计系统逻辑,具体需求如下:
移动运营商A设置两种类型的用户:普通用户及VIP用户,现该运营商已有5个VIP用户和15个普通用户,共计20个用户。
普通用户资费标准如下(不考虑漫游和长途):
【基准资费】
无月租费用。
通话费:0.6元/ 分钟(仅拨打收费,接听免费)
短信费:0.1元/ 条
数据费:5元/ M
【优惠套餐】
话费套餐:月功能费20元,最多可拨打60分钟电话,超出时间按照0.5元/分钟计费。
短信套餐:月功能费10元,最多可发送200条短信,超出条数按照0.1元/条计费。
数据套餐:月功能费20元,最多可获50M的流量,超出流量按照3元/M 计费。
注:用户可以选择多种套餐,各功能(通话、短信、数据)计费时,如已选择对应套餐,则按套餐标准计费;如未选择对应套餐,则按对应的基准资费计费。
VIP用户资费标准如下(不考虑漫游和长途):
【基准资费】
月租费用:按天收取,2元/ 天
通话费:0.4元/ 分钟(仅拨打收费,接听免费)
短信费:0.1元/ 条
数据费:3元/ M
【优惠套餐】
套餐1 :月基本费用100元(无月租费用),提供如下服务:
①最多可拨打750分钟电话,超出部分按照0.3元/ 分钟计费。
②最多可发送200条短信,超出条数按照0.1元/ 条计费。
③最多可获得100M数据流量,超出流量按照1元/ M计费。
套餐2 :月基本费用200元(无月租费用),提供如下服务:
①最多可拨打2000分钟电话,超出部分按照0.2元/ 分钟计费。
②最多可发送500条短信,超出条数按照0.1元/ 条计费。
③最多可获得300M数据流量,超出流量按照0.5元/ M计费。
注:用户最多只能选择一种套餐,如未选择任何套餐,则按照基准资费计费。
各类型用户只能选择提供给本类型用户的套餐。
新用户入网。
①对于新入网的普通用户,入网当月赠送如下服务:免费拨打60分钟
电话,免费发送200条短信,免费获得50M流量。超出赠送的部分
按照普通用户基准资费进行计费。
②对于新入网的VIP用户,入网当月赠送如下服务:免费拨打200分
钟电话,免费发送200条短信,免费获得100M数据流量。超出赠送
的部分按照VIP用户基准资费进行计费(注意:需按入网天数计算月
租费用)。
每月为用户计算一次账单,用户订制的套餐信息和账单信息采用文件方式进行存储(提示:可使用java中的Properties API进行文件操作)。
用户可自由订制或退订所属用户类型的套餐,并从下月起生效。
异步随机生成客户操作如下:
①拨打电话,每次拨打时长为1至10分钟不等(随机决定,以分钟为单位)。
②发送短信,每次发送条数为1至10条不等(随机决定)。
③上网获取数据,每次获取数据流量可为50K,100K,200K,500K,1M(随机决定)。
④订制或退订相应套餐。
⑤新用户入网(随机决定用户类型)。
注:随机生成客户操作时间间隔自定,可设置。
不要求实现GUI,只考虑系统逻辑实现,可通过Log方式展现程序运行结果。
本文原始需求出处:http://blog.csdn.net/zhangxiaoxiang/archive/2011/04/06/6304117.aspx#1642657
字段 类型 名称
字段 类型 名称
简易移动用户资费统计系统数据库设计方案