表关系 - 使用SQL Server后端访问前端

时间:2016-09-09 20:53:58

标签: sql-server performance ms-access relational-database relationship

当我们的IT部门将Access数据库转换为SQL Server时,关系不会转移。在过去,我提供了可用于建立关系的ERD。在这种情况下,我没有。

  

在MS Access前端中定义表关系与在SQL Server本身上定义表关系会产生什么后果?

如果我可以在Access中创建关系并避免向IT提交请求,那将是理想的,但我不想冒现在或将来出现性能问题。

1 个答案:

答案 0 :(得分:2)

可能存在一些误解。

SQL Server中的关系强制执行参照完整性(订单不能包含不存在的客户ID)。 It does not automatically create an index on the Foreign Key,因此它本身对性能没有任何影响。

But in most cases it is a good idea to define an index on a foreign key,以提高效果。

您在链接表上的Access中定义的关系都不会。它不能强制引用完整性(这是服务器的工作) 表格通过指定的字段相关只是一个“提示”,例如,如果将表添加到查询设计中,查询生成器可以自动加入表。 (copied from here)

所以你应该

  • 在SQL Server中创建关系以避免数据不一致。 (“但我的应用程序逻辑阻止了这一点!”,我听到你说。好吧,应用程序有错误。)
  • 在适当的位置创建外键索引以避免性能问题。
  • 如果您正在使用Access前端中的查询,请另外定义那里的关系。

理想情况下,您应该拥有一个测试服务器,您可以自己定义关系,然后将完成的SQL脚本发送给IT。