gpt4 book ai didi

SQL 表规范化与非规范化

转载 作者:行者123 更新时间:2023-12-04 20:17:09 27 4
gpt4 key购买 nike

关闭。这个问题是off-topic .它目前不接受答案。












想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。

8年前关闭。




Improve this question




我正在使用 MS SQL Server 2012 .我有两张 table ,一张给医生,一张给手术中心。每个表当前都包含描述他们(医生和手术中心)应该如何接收报告(电子邮件、传真...)的列。两个表中保存这些数据的列是相同的。我正在考虑从每个表中提取交付方法列并制作一个通用的交付方法表,但我需要在每一行中都有医生和手术中心的外键。这很麻烦,因为分娩方法和医生之间存在一对一的关系。手术中心表也存在同样的关系。

问题:

  • 有一个带有两个外键并且其中一个始终为空的表是一种好习惯吗?
  • 处理这种情况的最佳策略是什么。

  • 我想从医生和手术中心表中提取分娩方法信息的原因是为了减少表的整体大小。这也将更好地规范我的数据。我感谢任何和所有的帮助和指导。

    最佳答案

    一个想法是有一个单一的 DeliveryMethod 表。此表中的每条记录都有一个 ID(可能是代理 - 例如身份或序列)。然后,Doctor 表将有一个 DeliveryMethodID 外键,同样,SurgeryCenter 表将有一个 DeliveryMethodID 外键。

    在典型的数据库设计中,您不想要两个相同的表。如果表大小成为问题,有多种方法可以解决此问题,包括将其设为 partitioned table .

    关于SQL 表规范化与非规范化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14372210/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com