-2

要解决的问题陈述:

  1. 您需要在数据库中存储员工信息(姓名、年龄、性别和地址)和项目信息(姓名、客户名称、客户城市)。员工可以从事多个项目,一个项目可以有多个员工。一些员工可能不在任何项目中。 请为此和必要的约束创建表结构,不要使用创建表查询只是结构很重要并显示每列的主键和数据类型。
  2. 对于上述情况,请针对以下情况编写查询:- 要获取项目列表,对于每个项目,列表中所需的详细信息是-项目名称、客户名称、编号。从事项目工作的员工的画像。

我有点明白表 1 中存在问题,即 Project 表,因为它没有标准化

4

2 回答 2

1

不能对约束或键提出太多建议,但绝对Employee和Projects表需要分别作为Employee ID和Project ID的主键,employees表中的gender可以是枚举。
建议project_employees表也有一个主键,这样可以在有多个相同项目或员工id的条目时唯一标识一条记录。这样就不需要在标准中使用这两个列。

于 2014-06-24T12:58:12.857 回答
0

员工

身份证|姓名| 年龄| 性别| 地址

客户

id|名称|城市

项目

编号| 姓名| client_id(FK client.id)

project_employee_mapping

employee_id (FK employee.id) | project_id (FK project.id)

询问:

SELECT p.name, c.client_name, COUNT(pem.employee_id)
FROM project p, project_employee_mapping pem, client c
WHERE pem.project_id = p.id
AND c.id = p.client_id
GROUP BY p.id
于 2013-11-08T11:17:42.250 回答