SQL 代码中的关系

SQL Relationships in code

好的。所以我必须做一个学校的数据库,我有义务处理与我创建的每个 table 的关系。到目前为止,我有几个 tables 和一些关系,像这样:我有 Classrooms table 包括 IDClassroomNumber (比如 101 , 203 等)。在另一个 Subjects table 中,我有 SubjectNameClassroomID 以及这样的关系:

在代码 (C#) 中,我 Select 来自 Classrooms table 的值,但我必须使用 join/where,所以我添加 where s.ClassroomID = c.ID(之前定义的s和c)。好的,它有效。但我的问题是不同的。为什么我必须使用关系?他们有什么用? Joinwhere 在没有关系的情况下工作,为什么?

外键是基于 tables/columns 之间关系的索引。 table 越大,这一点就变得非常重要。如果您尝试将两个 table 与数百万条记录连接起来并且没有适当的索引,则查询将花费更长的时间才能完成。

这是为了确保数据的完整性。确保更少的垃圾数据进入数据库。还要有一个其他人也很容易理解的结构数据库。

不要质疑。你需要他们。你想要他们。在 DWH 中你不需要,但在事务数据库中你可以。