需求背景
- 一个客户可以办多张卡
- 一张卡可以关联多个服务
- 卡与服务的关联表,有的包含使用次数。(卡分时卡和次卡,次卡包含次数。时卡指,年卡/季卡/月卡等。)
数据存储
- 卡项关联至客户。新建表 client_card, 客户可能开多张卡,一条记录代表一张卡
- 卡项信息、服务信息 copy 一份存储在开卡信息中,防止卡项及服务信息修改。service 备份在关联表中;开卡时间,有效期,更新时间
字段设计
- 复制卡项的字段到 client_card 关联表。最好同时保存原卡项的 ID,方便统计。
- 因为一张卡可能包含多项服务,所以把服务字段 json 序列化之后,存储到 client_card 关联表的一个字段中,也保留服务 ID
- 序列化字段,需要包含剩余次数。因为扣卡的频率并不高,所以这里直接在 go 逻辑层实现都可以。
- 需新增开卡时间、卡过期时间。这个得用 mysql date 类型,对应的 golang 使用 string 就可以?得测试一下为空的情况。
查询会员的开卡信息
提交会员 ID,查询开卡信息。
会员 model preload 关联表 struct 即可。
扣卡
提交会员 ID,卡 ID,服务 ID,服务次数(可能多种消费),进行扣减。
这里需要确认,是否需要一次扣多张卡,多种服务的情况。 或者简化一点
[卡 ID,服务 ID,服务次数]
即便是时卡,也需要提交,为了保存消费日志。
消费日志需要新增一种类型,扣卡。
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式