我最近的任务是为我们的所有产品制作一个帐户系统,就像微软产品中的Windows帐户一样。然而,其中一项要求是,我们能够很容易地检查具有相同信息的账户,以便我们能够发现交易账户、突然的和可能的欺诈性信息更改等。
当想到解决这个问题的方法时,我想我们可以减少数据的冗余。我认为它可以帮助我们节省一些存储空间和处理时间,因为最终我们只需要将数据集处理到我下面解释的内容中。
现在如何设置它的一些背景信息:
配置文件记录是将配置文件数据的独特部分(在多个帐户之间共享)与特定帐户相关联的内容。如果有五十个人叫“约翰·史密斯”,那么在“名字”表中只有一条“约翰·史密斯”记录。如果用户更改其信息的任何部分,配置文件记录将被软删除,并创建一个新的记录。这是为了便于更改跟踪。
在分析之后,我注意到创建像UNIQUE(FirstName, MiddleName, LastName)这样的约束在记录插入方面是非常痛苦的。这仅仅是我们要付出的代价,还是有更好的方法?
发布于 2012-12-20 18:15:08
我已经结束了我的研究,并决定,如果插入性能不是关键的话,这种方法是可以的。在关键的情况下,合理地增加数据冗余是一个可以接受的折衷方案。
我在问题中描述的解决方案足以满足我的性能需求。在我们的模型中,存储被认为比插入时间更昂贵。
发布于 2012-12-14 12:29:01
有两个人的记录,叫约翰·史密斯,不是多余的,而是必要的。
您所建议的方法远非最佳。“配置文件记录被软删除,并创建了一个新记录。这是为了便于更改跟踪。”删除和重新插入将导致其他表中的相关记录出现问题.有许多更简单的方法来跟踪更改--搜索一些第三方工具。
至于创建的表,没有必要将数据拆分到这么多的表中。你为什么不把名字表和帐户表合并。地址和电子邮件地址表都是必需的吗?
https://stackoverflow.com/questions/13872549
复制相似问题