我有这些表:
Projects(projectID, CreatedByID)
Employees(empID,depID)
Departments(depID,OfficeID)
Offices(officeID)
CreatedByID
是 的外键。Employees
我有一个几乎在每次页面加载时都会运行的查询。
OfficeID
只添加一个冗余列Projects
来消除三个连接是不好的做法吗?或者我应该执行以下操作:
SELECT *
FROM Projects P
JOIN Employees E ON P.CreatedBY = E.EmpID
JOIN Departments D ON E.DepID = D.DepID
JOIN Offices O ON D.officeID = O.officeID
WHERE O.officeID = @SomeOfficeID
在应用程序编程中,我“先编写最佳实践,然后再优化”,但数据库管理员总是警告连接成本。