level 3
lwl7969318
楼主
现在做的设备管理系统,有3个表分别是设备信息表,保养情况表,所在车间表。现在需要增加一个历史表,用来查該设备以前的保养情况。现在搞不清楚这个历史表的字段和主键定义。望有经验的大神指导下。或者是帮忙看下这个方案怎么实现。
最终方案:数据库中同样的表都是由两张,一个存储当前最新的状态信息,一个表记录信息的变更。在此次设计中采用生命周期的概念,每条记录都有一个生效时间和失效时间的字段,即一条记录添加进数据库就是生命周期的开始,之间做的修改等操作,只是影响生命周期中不同的时间内的状态,到删除就是生命周期的结束。任何记录都没有真删除,用一个字段来标识本条信息是否可用,对当前信息表中的记录做一次更改就往历史表中添加一条记录,同时更改失效时间为当前时间。在做页面的时候分两种情况:对于当前信息做一个维护页,信息可以增删给查,用的是当前数据表;历史查询页,查出来的信息不能进行操作,查询数据需要利用历史表和当前表的联合查询。一切都是以时间做限制,信息的变动也是随着时间来,任何一个实体在某一个时间上都会有自己的唯一状态,这样就可以实现对信息的任意一个时刻的状态信息的查询。
我对这个生命周期和标识字段不太理解
2016年11月21日 04点11分
1
最终方案:数据库中同样的表都是由两张,一个存储当前最新的状态信息,一个表记录信息的变更。在此次设计中采用生命周期的概念,每条记录都有一个生效时间和失效时间的字段,即一条记录添加进数据库就是生命周期的开始,之间做的修改等操作,只是影响生命周期中不同的时间内的状态,到删除就是生命周期的结束。任何记录都没有真删除,用一个字段来标识本条信息是否可用,对当前信息表中的记录做一次更改就往历史表中添加一条记录,同时更改失效时间为当前时间。在做页面的时候分两种情况:对于当前信息做一个维护页,信息可以增删给查,用的是当前数据表;历史查询页,查出来的信息不能进行操作,查询数据需要利用历史表和当前表的联合查询。一切都是以时间做限制,信息的变动也是随着时间来,任何一个实体在某一个时间上都会有自己的唯一状态,这样就可以实现对信息的任意一个时刻的状态信息的查询。
我对这个生命周期和标识字段不太理解