我应该与数据库模式建立关系还是以编程方式处理它们?

时间:2015-07-09 07:59:50

标签: sql database

我应该与数据库架构建立关系还是以编程方式处理它们?

例如当我在MSSQL中构建数据库时,我不能构建关系并以编程方式处理关系,例如检查密钥是否作为另一个表中的主键存在,并确定将新行插入到是否表。

任何人都可以告诉我这是不是一个好习惯。

2 个答案:

答案 0 :(得分:2)

DO 通过声明外键约束来明确表之间的关系。

我认为没有任何理由不这样做。为什么外键约束是个好主意?

  • 外键约束是帮助保护数据完整性/一致性的简单方法。

  • 约束(不仅仅是外键)也可以看作是“活文档”的一种形式(使事物变得明确,因此可以被发现,而不必猜测)。

  • 您可能仍希望在代码中验证插入内容;在这种情况下,如果您的代码失败,您可以将外键约束视为“安全网”。

(关于上面的第二个要点:我必须使用一个遗留数据库,这个数据库缺少一些外键约束,应该通过各种方式声明。这意味着每次我必须对其进行更改时,我可能无意中破坏了一个应用程序,该应用程序通过查看模式对模式做出某些假设是不明显的。使用这个数据库非常痛苦且容易出错。如果我可以改变这个数据库的一件事,那就是添加所有缺失的约束。)

答案 1 :(得分:0)

这取决于你的需要。 如果您正在设计OLTP应用程序,那么构建关系是好的,但如果您设计数据仓库DWH或datamart,则建议不要在架构中建立关系并在代码中处理它。