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