比较两个大字符串而不将其存储在数据库中

问题描述 投票:0回答:1

我想检测用户是否已根据其先前的值修改了一些数据。此数据存储在不同数据库表的多个字段中。

让我们说第一轮的数据是:

'Roger Federer','Ferrari','Keyboard','Romeo'

并且第二轮是:

'Roger Federer','Ferrari','Keyboard','Juliet'

我需要比较第二次运行的数据是否被修改。为此,我创建了一个密钥,在其中存储了所有字段的串联。这将导致如下所示:第一个是'RogerFedererFerrariKeyboardRomeo',第二个是'RogerFedererFerrariKeyboardJuliet'。然后,我将比较这些键。这种方法的问题是我有50多个字段,并且密钥的大小很大,这将影响我的数据库。

由于我不关心实际的数据值,仅想查看数据是否被修改,我可以为我的数据创建POJO / JSON并计算CRC32 / MD5校验和作为键并进行比较吗?这种方法有什么问题?有更好的替代解决方案吗?

java string algorithm checksum
1个回答
0
投票

一种不消耗太多资源的好方法是比较每个字段的值,当发现差异时,比较会停止。>

示例:

Roger Federer | Ferrari | Keyboard | Romeo
Roger Federer | Ferrari | Keyboard2 | Juilet

比较filed1(相同)-> field2(相同)-> filed3(不同):停止比较


0
投票

您可以考虑在用户模型上使用'revision'或'lastModified'属性。

© www.soinside.com 2019 - 2024. All rights reserved.