首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过设置大量独特的约束来减少Microsoft SQL Server 2012中的冗余,这是否太极端了?

通过设置大量独特的约束来减少Microsoft SQL Server 2012中的冗余,这是否太极端了?
EN

Stack Overflow用户
提问于 2012-12-14 04:15:15
回答 2查看 90关注 0票数 0

我最近的任务是为我们的所有产品制作一个帐户系统,就像微软产品中的Windows帐户一样。然而,其中一项要求是,我们能够很容易地检查具有相同信息的账户,以便我们能够发现交易账户、突然的和可能的欺诈性信息更改等。

当想到解决这个问题的方法时,我想我们可以减少数据的冗余。我认为它可以帮助我们节省一些存储空间和处理时间,因为最终我们只需要将数据集处理到我下面解释的内容中。

现在如何设置它的一些背景信息:

  • 一个帐户表只包含一个id和一个用户名。
  • 配置文件表包含对帐户的引用和对单独的配置文件数据的引用:名称、邮件地址、电子邮件地址。
  • name表包含个人的id和第一个、最后和中间名。
  • 地址表包含有关地址的数据。
  • 电子邮件地址表包含一个id以及电子邮件地址的邮箱和域。

配置文件记录是将配置文件数据的独特部分(在多个帐户之间共享)与特定帐户相关联的内容。如果有五十个人叫“约翰·史密斯”,那么在“名字”表中只有一条“约翰·史密斯”记录。如果用户更改其信息的任何部分,配置文件记录将被软删除,并创建一个新的记录。这是为了便于更改跟踪。

在分析之后,我注意到创建像UNIQUE(FirstName, MiddleName, LastName)这样的约束在记录插入方面是非常痛苦的。这仅仅是我们要付出的代价,还是有更好的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-20 18:15:08

我已经结束了我的研究,并决定,如果插入性能不是关键的话,这种方法是可以的。在关键的情况下,合理地增加数据冗余是一个可以接受的折衷方案。

我在问题中描述的解决方案足以满足我的性能需求。在我们的模型中,存储被认为比插入时间更昂贵。

票数 1
EN

Stack Overflow用户

发布于 2012-12-14 12:29:01

有两个人的记录,叫约翰·史密斯,不是多余的,而是必要的。

您所建议的方法远非最佳。“配置文件记录被软删除,并创建了一个新记录。这是为了便于更改跟踪。”删除和重新插入将导致其他表中的相关记录出现问题.有许多更简单的方法来跟踪更改--搜索一些第三方工具。

至于创建的表,没有必要将数据拆分到这么多的表中。你为什么不把名字表和帐户表合并。地址和电子邮件地址表都是必需的吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13872549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档