我们使用第三方产品来管理我们的体育中心会员资格.我们有几种会员类型(例如,初级,学生,员工,社区)和几种会员身份(例如,年度,活动,非活动,暂停).不幸的是,该产品仅记录会员当前的会员类型和状态.我希望能够跟踪我们的会员类型和状态随时间变化的方式.
目前,我们可以访问产品的数据库设计.它在sql Server上运行,我们定期针对产品表运行自己的SQL查询,以生成我们自己的表.然后,我们将表格链接到Excel中的数据透视表以生成图表.所以我们熟悉数据库设计和sql.但是,我们仍然坚持如何最好地解决这个问题.
该产品记录会员的会员购买情况以及他们的开始和到期日期.因此,我们可以回过头来确定会员在任何时间点的类型和状态.例如,如果他们在2007年1月1日购买了初级会员并且在2007年12月31日到期,然后他们在2008年6月1日购买了学生会员资格,我们可以看到他们的状态从活动状态变为非活动状态到活动状态(1月1日)分别于2008年1月和2008年6月1日),他们的类型从大三到学生(2008年6月1日).
基本上我们希望将成员的类型和状态属性转换为temporal properties或effectivities a-la Fowler(或其他随时间变化的事物).
我们的问题(最后:) – 鉴于上述情况:您建议我们使用哪种数据库表设计来保存此成员信息.我想它会有一个MemberID列,所以我们可以键入现有的Member表.它还需要存储成员的状态和类型以及他们所持有的日期范围.我们希望能够轻松地针对此表编写查询,以确定在给定时间点我们拥有的每种类型和状态的成员数量.
更新2009-08-25:已被侧面跟踪,尚未有机会尝试提出的解决方案.希望尽快这样做,并根据结果选择答案.