2014-11-03 104 views
0

我刚刚有一位同事向我介绍了来自第三方公司的SQL数据库。SQL数据库恢复后的外键问题

他们从第三方备份了数据库,并在我们的办公室恢复了它。

有一个问题,因为看起来每个表的所有外键都是实际的表属性,而不是实际的关系。

我以前没见过这个,想知道是否有人知道它的原始数据源可能是什么?或者在进行备份时是否存在损坏。

这些家伙将不得不重新映射所有的关系,作为一个非常大的模式,这是一个乏味的任务。

*** UPDATE ****

一个例子是这样的: -

enter image description here

任何帮助,将不胜感激。

+0

为什么在SQL Server内置时使用第三方工具进行备份,使用SQL Server进行备份,然后恢复,并检查所有外键。 – 2014-11-03 18:06:17

+0

你的意思是“表格属性而不是实际关系”?像...“tableA.someId = tableB.someId”的隐含关系而没有实际定义外键? – Kritner 2014-11-03 18:20:27

+0

@mr_eclair不使用第三方工具的地方,它是由第三方拥有的sql数据库。 – Derek 2014-11-03 19:44:13

回答

1

那么,只是因为列名以FK开头并不会使它成为外键。 您确定原始数据库中存在外键约束吗?

也许他们从未实现约束。当您打开表格时,它们应该在键部分下方可见。见下面

enter image description here

图像取决于你想要达到的目标,有可能是没有必要重新实现的约束。例如。一些相对较小的只读查询也可以工作。只要你开始更新,我宁愿有限制。

+1

我猜想第三方开发团队是无能的,并且倾向于通过gui来做所有事情,而不是关心数据完整性,因为FK的某些误导性的愚蠢行为导致放慢速度。当然,我从来没有见过一个设计良好的数据库,它是第三方产品的一部分。 – HLGEM 2014-11-03 20:11:51

+0

@HLGEM我从来没有见过这样的事情。 – Derek 2014-11-04 08:33:06