【发布时间】:2015-01-06 21:10:35
【问题描述】:
我们为什么要在 SQL Management Studio 中定义关键关系?我是学生,老师想要这个。其实我觉得没必要,因为我可以用sql查询连接表。
例如:我们有EMPLOYEE 和MANAGER 表。
EMPLOYEE 有 ID, Name, SuperID(supervisorID in MANAGER)
MANAGER 有 ID, Name
其实老师说“你应该在SQL Server管理中连接两个表,因为Employee的SuperID是MANAGER的外键ID和”
我可以使用 sql 查询连接(即我可以看到两个表的连接)两个表,例如:
SELECT e.*,m.Name as 'Manager's Name' FROM EMPLOYEE e, MANAGER m
WHERE e.SuperTC = m.TC
没关系,但为什么我们在 SQL Management Studio 中连接两个表?(SQL Management Studio 中的主键、外键部分) 如果我们不连接会发生什么?在专业公司工作有必要吗?
【问题讨论】:
-
主要原因是无需在触发器中编写自定义查询即可启用参照完整性。一些设计师还会使用外键为您关联表格。 SQL 的结尾是一样的,但它可以省去您自己输入的麻烦和风险。
-
而且您绝对知道您编写的查询将是访问数据的唯一方式......永远!?
-
让您的老师向您展示当前(不是 20 岁)的加入语法。
-
IMO,这实际上取决于数据库的大小以及打算存储的数据量。如果不出意外,正如许多其他人所指出的那样,使用外键将防止孤立记录(数据库中没有与它们关联的正确数据的记录)。如果它是一个简单的数据库,那么这可能不是一个大问题。话虽如此,正确的做法是对所有关系使用外键。
标签: sql database primary-key ssms