我想检测用户是否已根据其先前的值修改了一些数据。此数据存储在不同数据库表的多个字段中。
让我们说第一轮的数据是:
'Roger Federer','Ferrari','Keyboard','Romeo'
并且第二轮是:
'Roger Federer','Ferrari','Keyboard','Juliet'
我需要比较第二次运行的数据是否被修改。为此,我创建了一个密钥,在其中存储了所有字段的串联。这将导致如下所示:第一个是'RogerFedererFerrariKeyboardRomeo',第二个是'RogerFedererFerrariKeyboardJuliet'。然后,我将比较这些键。这种方法的问题是我有50多个字段,并且密钥的大小很大,这将影响我的数据库。
由于我不关心实际的数据值,仅想查看数据是否被修改,我可以为我的数据创建POJO / JSON并计算CRC32 / MD5校验和作为键并进行比较吗?这种方法有什么问题?有更好的替代解决方案吗?
一种不消耗太多资源的好方法是比较每个字段的值,当发现差异时,比较会停止。>
示例:
Roger Federer | Ferrari | Keyboard | Romeo Roger Federer | Ferrari | Keyboard2 | Juilet
比较filed1(相同)-> field2(相同)-> filed3(不同):停止比较
您可以考虑在用户模型上使用'revision'或'lastModified'属性。