消费时系统优先扣除客户的定向积分,如果定向积分不够,不足部分自动从不定向积分中扣除,也就是说,不定向积分的级别比定向积分要更高。
定向积分有“有效期”,过期还没有使用的部分自动作废,不定向积分没有有效期限制。
请教大家:这个需求,数据库该如何设计比较科学?程序处理流程又该如何?谢谢大家!
5 个解决方案
#1
分开表来,各玩各的
表1:
定向积分
客户ID
有效期
积分
商户ID
表2:
不定向积分
客户ID
积分
程序处理时,客户-->消费的是否为指定商户-->是(1、操作积分)
-->否-- >合作商户--->(2.操作不定向积分)
1(积分操作)---> 客户够积分--->直接扣除; 否则,扣完定向积分,再去不定向积分中扣除剩余未扣积分部分……
表1:
定向积分
客户ID
有效期
积分
商户ID
表2:
不定向积分
客户ID
积分
程序处理时,客户-->消费的是否为指定商户-->是(1、操作积分)
-->否-- >合作商户--->(2.操作不定向积分)
1(积分操作)---> 客户够积分--->直接扣除; 否则,扣完定向积分,再去不定向积分中扣除剩余未扣积分部分……
#2
谢谢楼上的,关键还有消费积分和有效期的处理比较麻烦,貌似你的设计还不能解决我的问题。
#3
3张表搞定
一张积分总表
一张定向积分明细表
一张不定向积分明细表
总表中记录有效期
一个BOOL字段区分是定向还是不定向
不定向的有效期直接写成3000-01-01就可以了。
明细表是为了你查询这些比较好操作 字段你自己去设计设计就OK了
一张积分总表
一张定向积分明细表
一张不定向积分明细表
总表中记录有效期
一个BOOL字段区分是定向还是不定向
不定向的有效期直接写成3000-01-01就可以了。
明细表是为了你查询这些比较好操作 字段你自己去设计设计就OK了
#4
1.用户表 userid , (其他的有nickname,address,create_tm,phone等)
2.商户表 businessId, bname , desc等
3.定向积分明细表 以用户userid和商户id为外键 ,设置一个过期时间,备注。
4.不定向积分明细表 以用户userid为外键
5.消费记录表, 记录用户消费历史记录,需要的字段有:userid,定向或不定向的类型,用户名(方便查看),
消费多少积分,消费定 向多少分,不定向多少分,目标用户消费的日期,消费的商品名称(可多个),备注
每次消费积分,根据userid 商户id 查定向表有效期限 的积分情况,不足则 查扣不定向表的情况
另外,如果软件使用时间较长,还需要增加积分和消费记录历史表,按年月编号。定期转移数据,
用程序实现陈年数据提取的方法
2.商户表 businessId, bname , desc等
3.定向积分明细表 以用户userid和商户id为外键 ,设置一个过期时间,备注。
4.不定向积分明细表 以用户userid为外键
5.消费记录表, 记录用户消费历史记录,需要的字段有:userid,定向或不定向的类型,用户名(方便查看),
消费多少积分,消费定 向多少分,不定向多少分,目标用户消费的日期,消费的商品名称(可多个),备注
每次消费积分,根据userid 商户id 查定向表有效期限 的积分情况,不足则 查扣不定向表的情况
另外,如果软件使用时间较长,还需要增加积分和消费记录历史表,按年月编号。定期转移数据,
用程序实现陈年数据提取的方法
#5
上面的大神已经说了很多了,设计上都没啥问题,不过有一点需要楼主考虑下,就是那张定向积分表,业务刚起步的时候这表可能只有几家对口的商户和个把用户,但运营十几年后,随着用户数和商户数上升,以及多年来的数据沉淀,此表的数据可能会比较可观。所以在设计此表的同时,楼主还是要考虑好数据沉淀和将来可能会出现的数据剧增的处理办法。这和设计关系并不大,但作为一个可持续发展的项目应当去考虑下。
#1
分开表来,各玩各的
表1:
定向积分
客户ID
有效期
积分
商户ID
表2:
不定向积分
客户ID
积分
程序处理时,客户-->消费的是否为指定商户-->是(1、操作积分)
-->否-- >合作商户--->(2.操作不定向积分)
1(积分操作)---> 客户够积分--->直接扣除; 否则,扣完定向积分,再去不定向积分中扣除剩余未扣积分部分……
表1:
定向积分
客户ID
有效期
积分
商户ID
表2:
不定向积分
客户ID
积分
程序处理时,客户-->消费的是否为指定商户-->是(1、操作积分)
-->否-- >合作商户--->(2.操作不定向积分)
1(积分操作)---> 客户够积分--->直接扣除; 否则,扣完定向积分,再去不定向积分中扣除剩余未扣积分部分……
#2
谢谢楼上的,关键还有消费积分和有效期的处理比较麻烦,貌似你的设计还不能解决我的问题。
#3
3张表搞定
一张积分总表
一张定向积分明细表
一张不定向积分明细表
总表中记录有效期
一个BOOL字段区分是定向还是不定向
不定向的有效期直接写成3000-01-01就可以了。
明细表是为了你查询这些比较好操作 字段你自己去设计设计就OK了
一张积分总表
一张定向积分明细表
一张不定向积分明细表
总表中记录有效期
一个BOOL字段区分是定向还是不定向
不定向的有效期直接写成3000-01-01就可以了。
明细表是为了你查询这些比较好操作 字段你自己去设计设计就OK了
#4
1.用户表 userid , (其他的有nickname,address,create_tm,phone等)
2.商户表 businessId, bname , desc等
3.定向积分明细表 以用户userid和商户id为外键 ,设置一个过期时间,备注。
4.不定向积分明细表 以用户userid为外键
5.消费记录表, 记录用户消费历史记录,需要的字段有:userid,定向或不定向的类型,用户名(方便查看),
消费多少积分,消费定 向多少分,不定向多少分,目标用户消费的日期,消费的商品名称(可多个),备注
每次消费积分,根据userid 商户id 查定向表有效期限 的积分情况,不足则 查扣不定向表的情况
另外,如果软件使用时间较长,还需要增加积分和消费记录历史表,按年月编号。定期转移数据,
用程序实现陈年数据提取的方法
2.商户表 businessId, bname , desc等
3.定向积分明细表 以用户userid和商户id为外键 ,设置一个过期时间,备注。
4.不定向积分明细表 以用户userid为外键
5.消费记录表, 记录用户消费历史记录,需要的字段有:userid,定向或不定向的类型,用户名(方便查看),
消费多少积分,消费定 向多少分,不定向多少分,目标用户消费的日期,消费的商品名称(可多个),备注
每次消费积分,根据userid 商户id 查定向表有效期限 的积分情况,不足则 查扣不定向表的情况
另外,如果软件使用时间较长,还需要增加积分和消费记录历史表,按年月编号。定期转移数据,
用程序实现陈年数据提取的方法
#5
上面的大神已经说了很多了,设计上都没啥问题,不过有一点需要楼主考虑下,就是那张定向积分表,业务刚起步的时候这表可能只有几家对口的商户和个把用户,但运营十几年后,随着用户数和商户数上升,以及多年来的数据沉淀,此表的数据可能会比较可观。所以在设计此表的同时,楼主还是要考虑好数据沉淀和将来可能会出现的数据剧增的处理办法。这和设计关系并不大,但作为一个可持续发展的项目应当去考虑下。