【发布时间】:2013-05-11 12:06:25
【问题描述】:
我的数据库中有一个订阅模型,可以为用户订阅某些月份的课程。分配的类型很少。用户可以:
- 使用信用卡购买课程 x 月订阅
- 通过输入一些激活密钥购买课程 x 月订阅
- 系统管理员将用户分配给 x 个月订阅。
如果用户续订他/她的订阅,我不会删除旧的,而是在订阅表中创建新记录并将旧记录保留为历史记录,如果管理员更新了相同的订阅,我也是再次创造新纪录。 用户当前的订阅由最后一条记录标识。用户课程的到期日期是显示在最新记录中的日期。 例如,如果您查看随附的屏幕截图。
用户 1 有三个订阅,其中一个说课程必须在 6 月 15 日到期,但实际到期日期是 6 月 14 日,因为这是此用户 - 课程组合的最新记录。
我保留所有这些记录(而不仅仅是更新现有的用户课程到期日期)的原因是我需要这些历史记录。如果出现问题,我总是能够恢复错误所在。
我想你已经明白了我的想法,我的问题是,如果这是一个好的解决方案,以及如何更好地实现想法。
感谢您的宝贵时间。
【问题讨论】:
-
“但是真正的过期日期是 6 月 16 日,因为这是此用户课程组合的最新记录。” 不,用户 1 的最新时间戳是 6 月 15 日. 存储真实数据。如果您有一个到期日期列,请将到期日期存储在该列中。不要在该列中存储“到期日期前一天”。
-
很抱歉我的拼写错误,应该是 6 月 14 日而不是 16 日。在帖子中编辑
标签: sql database-schema