Sql 数据库/表的重组

Sql 数据库/表的重组,sql,sql-server,Sql,Sql Server,假设我有一个包含这些表的数据库 Car --> Has Dealerships --> Has Demographic --> Has Revenue 发布后,客户说他们希望这款车有车型,并且每个车型都应该有经销商 所以我的结构变得 Car --> Has Model --> Has Dealerships --> has Demographic --> Has Revenue 如何迁移到第二个数据库结构?我需要断开汽车和经销商之间的外键才能工作。我

假设我有一个包含这些表的数据库

Car --> Has Dealerships --> Has Demographic --> Has Revenue
发布后,客户说他们希望这款车有车型,并且每个车型都应该有经销商

所以我的结构变得

Car --> Has Model --> Has Dealerships --> has Demographic --> Has Revenue

如何迁移到第二个数据库结构?我需要断开
汽车
经销商
之间的外键才能工作。我会只是对旧数据库进行快照,然后在知道如何处理它的上下文中编写一个包装器吗

我的理解是应该是
车型-->有车
,而不是
车型-->有车
。在我看来,
-->
名称的使用更加一致

因此,正确的最终关系链可能如下所示:

Model --> Has Cars --> Has Dealerships --> Has Demographic --> Has Revenue Model --> Has Dealerships --> Has Demographic --> Has Revenue \ / \-> Has Cars -/
  • ModelID
    列添加到
    Cars
    中,并根据您的业务需求使用正确的
    Models
    参考填充该列。它将为您提供以下结果:

    Model --> Has Cars --> Has Dealerships --> Has Demographic --> Has Revenue
  • 删除
    Cars-->经销商
    外键,删除
    经销商.CarID
    参考列。这将是您的最终结果:

    Model --> Has Dealerships --> Has Demographic --> Has Revenue \ \--> Has Cars 型号-->有经销商-->有人口统计-->有收入 \ \-->有汽车

  • 您是否需要在实时系统上执行此操作而不丢失数据,还是可以在无人查看的情况下执行此操作?在修复外键时,通常使用临时列和/或表来保存旧id和新id。为什么这会有4个投票?OP方面做了什么尝试?如果
    -->
    应该表示一对多关系,那么编写
    模型-->has Cars
    可能更准确。 Model --> Has Dealerships --> Has Demographic --> Has Revenue \ \--> Has Cars