描述很长,请耐心看完。
一个项目曾经碰到过的需求,一个对象可能有多个版本,但当前只是用一个,有效历史版本都必须保留,用纯数据库方式和代码控制的。
上来问问大家有没有Hibernate,也就是面向对象设计上的方案。
案例如下,纯属虚构:
1、国家修改法规处罚标准,使得处罚标准和力度发生变化,
比如:仿冒知名品牌获利罪
1980年版,仿冒知名品牌获利1万以内,处以7~10年监禁;
1990年版,仿冒知名品牌获利10万以内,处以5~8年监禁;
2000年版,仿冒知名品牌获利20万以内,处以4~7年监禁,并处以双倍获利处罚;
2010年版,仿冒知名品牌获利50万以内,处以3~5年监禁,并处以双倍获利处罚;
2、具体犯罪记录
罪犯A,1986年发现其当年触犯仿冒知名品牌获利罪,适用1980年版;
罪犯B,1992年发现其1987年触犯仿冒知名品牌获利罪,适用1990年版;
罪犯C,2004年发现其1993年触犯仿冒知名品牌获利罪,适用2000年版,但超过追诉期10年,罚款但不监禁;
3、系统当前2011年,查询仿冒知名品牌获利罪时应显示2010年版,
但对不同罪犯历史记录查询时,要显示其犯罪时所适用版本标准,以及调查发现期所真正施行的版本标准;
补充:上述案例中,有很多种犯罪条款,每个犯罪条款都有不同的版本时间段、处罚条件和处罚标准。
请问各位,这种系统如何基于模型来设计,尤其适用Hibernate持久化时,如何设计基础模型?
谢谢!