【问题标题】:Separate Surname and Forename table单独的姓氏和名字表
【发布时间】:2014-01-07 13:00:04
【问题描述】:

我的老板要我将Person表拆分为Surname和Forename表,然后用关系链接到Person表。这样做的目的基本上是消除数据冗余。这是一个具体的建议吗?名字和姓氏分开表好不好???

【问题讨论】:

  • 不,我认为不要为姓名和姓氏制作单独的表格。为什么不分成两列。
  • 数据库可以标准化到降低性能的程度。数据库规范化应该适合应用程序的需要。我建议你问问他为什么要这样做。他可能有特定应用程序设计的正当理由。

标签: mysql sql-server database database-design foreign-key-relationship


【解决方案1】:

没有。那不是好的关系型数据库管理系统。如果每个人只有一个姓和名(大多数情况下都是如此),则应将这些字段添加到现有表中,并删除“姓名”字段。

【讨论】:

  • 超过 1 个可以共享同一个姓氏 ;)
  • @SecretSquirrel 为此,我在我的喂鸟器上放了一个松鼠阻滞剂。
【解决方案2】:

你的老板是个布偶。任何“数据冗余”收益都会很快被抵消并取代,因为必须连接和查询单独的表以获取用户名,从而增加应用程序的复杂性,进而增加开发时间。

【讨论】:

    【解决方案3】:

    这取决于:)

    如果 Person 表真的不是很大,那么它真的是一个矫枉过正。

    但如果这张表要大幅增长,那么将其垂直分区将其分成 2 张表可能是有意义的。

    您可以重新考虑这个新设计的论点是选择查询将花费更多时间(因为将涉及连接),甚至需要更多时间来保存数据,因为将涉及多个表/索引,并且由于连接等原因,检索数据会稍微复杂一些。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-22
      • 1970-01-01
      • 1970-01-01
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多