员工、部门和经理 ID Table 结构
Employee, Departments, and ManagerID Table Structures
在 MS SQL 中,我有员工和部门 table。我需要改造 table 以允许我分配部门经理。
以下是现有的table:
Employee
---------
emp_id
emp_name
emp_email
Dept_id
Departments
-----------
Dept_id
Dept_name
我的规则如下:
- 部门经理是已经在 emp 中的现有员工
table.
- 员工只能分配到一个部门。
- 一个部门可以没有经理。
我需要添加哪些新字段和约束?
知道经理就是我所说的员工。
我可以使用什么 SQL 查询来列出分配有经理的所有部门的部门名称、经理姓名、经理分机、经理电子邮件?
谢谢
您可以添加第三个 table:
DepartmentManagers
-----------
Dept_id
emp_id
当然,您还必须将您提到的其他字段添加到员工 table(如果您需要该数据(分机等))或添加到 DepartmentManagers table如果您不需要非经理。部门名称在逻辑上属于然后你可以用类似的东西查询它 (pseudoSQL):
SELECT E.emp_name, E.email, E.extension, E.email, D.Dept_name FROM EMPLOYEE E, DEPARTMENTS D, DEPARTMENTMANAGERS M WHERE E.emp_id = M.emp_id AND D.Dept_id = M.Dept_id
另一种选择是向员工 table 添加一个 "IsManager" 字段;在那种情况下,您不需要第三个 table.
那么查询会更像(伪SQL,特别是因为可能没有 boolen 类型;您可能必须使用 1 而不是 TRUE):
SELECT E.emp_name, E.email, E.extension, E.email, D.Dept_name FROM EMPLOYEE E, Departments D WHERE E.Dept_id = D.Dept_id AND E.IsManager = TRUE
在 MS SQL 中,我有员工和部门 table。我需要改造 table 以允许我分配部门经理。
以下是现有的table:
Employee
---------
emp_id
emp_name
emp_email
Dept_id
Departments
-----------
Dept_id
Dept_name
我的规则如下:
- 部门经理是已经在 emp 中的现有员工 table.
- 员工只能分配到一个部门。
- 一个部门可以没有经理。
我需要添加哪些新字段和约束?
知道经理就是我所说的员工。 我可以使用什么 SQL 查询来列出分配有经理的所有部门的部门名称、经理姓名、经理分机、经理电子邮件?
谢谢
您可以添加第三个 table:
DepartmentManagers
-----------
Dept_id
emp_id
当然,您还必须将您提到的其他字段添加到员工 table(如果您需要该数据(分机等))或添加到 DepartmentManagers table如果您不需要非经理。部门名称在逻辑上属于然后你可以用类似的东西查询它 (pseudoSQL):
SELECT E.emp_name, E.email, E.extension, E.email, D.Dept_name FROM EMPLOYEE E, DEPARTMENTS D, DEPARTMENTMANAGERS M WHERE E.emp_id = M.emp_id AND D.Dept_id = M.Dept_id
另一种选择是向员工 table 添加一个 "IsManager" 字段;在那种情况下,您不需要第三个 table.
那么查询会更像(伪SQL,特别是因为可能没有 boolen 类型;您可能必须使用 1 而不是 TRUE):
SELECT E.emp_name, E.email, E.extension, E.email, D.Dept_name FROM EMPLOYEE E, Departments D WHERE E.Dept_id = D.Dept_id AND E.IsManager = TRUE