【发布时间】:2018-06-29 03:51:22
【问题描述】:
在大学项目的范围内,我应该实现我的数据库的聚合。
我得到了一个类似于这个的实体关系模型:
现在我应该实现一个创建这样的数据库的 SQL 脚本,但是我在谷歌或其他任何地方都找不到关于这个主题的任何内容。在我教授的幻灯片中,它说
- 例如,为了表示关系works_on和实体集管理器之间的聚合管理,创建一个模式
管理(employee_id,branch_name,title,manager_name)- Schema works_on 是多余的,前提是我们愿意为与架构管理相关的属性 manager_name 存储空值
所以我尝试将两张表放入我的 SQL 脚本中,一张名为 works-on,另一张名为 manages。在works-on中,我把job、branch和employee的所有主键都定义为外键。在manages 中,我放入了所有这些主键,另外我放入了manager。现在的问题是,当我使用 MySQL-workbench 的 Reverse-Engineer 创建数据库的 EER-Model 时,我没有从中得到任何与这种聚合有关的东西。那么我在这里做错了什么?
按照@Barmar 的要求,我刚刚写了我将用于此目的的CREATE TABLE-statements:
CREATE TABLE job
(jobid INT,
PRIMARY KEY(jobid));
CREATE TABLE employee
(employeeid INT,
PRIMARY KEY(employeeid));
CREATE TABLE branch
(branchid INT,
PRIMARY KEY(branchid));
CREATE TABLE manager
(managerid INT,
PRIMARY KEY(managerid));
CREATE TABLE works_on
(jobid INT, KEY(jobid),
branchid INT, KEY(branchid),
employeeid INT, KEY(employeeid));
CREATE TABLE manages
(jobid INT, KEY(jobid),
branchid INT, KEY(branchid),
employeeid INT, KEY(employeeid),
managerid INT, KEY(managerid));
ALTER TABLE works_on
ADD CONSTRAINT FK_workson_employee FOREIGN KEY(employeeid) REFERENCES employee(employeeid);
ALTER TABLE works_on
ADD CONSTRAINT FK_workson_branch FOREIGN KEY(branchid) REFERENCES branch(branchid);
ALTER TABLE works_on
ADD CONSTRAINT FK_workson_job FOREIGN KEY(jobid) REFERENCES job(jobid);
ALTER TABLE manages
ADD CONSTRAINT FK_manages_employee FOREIGN KEY(employeeid) REFERENCES employee(employeeid);
ALTER TABLE manages
ADD CONSTRAINT FK_manages_branch FOREIGN KEY(branchid) REFERENCES branch(branchid);
ALTER TABLE manages
ADD CONSTRAINT FK_manages_job FOREIGN KEY(jobid) REFERENCES job(jobid);
ALTER TABLE manages
ADD CONSTRAINT FK_manages_manager FOREIGN KEY(managerid) REFERENCES job(managerid);
【问题讨论】:
-
在您的架构中显示
CREATE TABLE语句。 -
为什么有人会投票结束这个,而不告诉我这个问题有什么问题? @Barmar这不是我想要实现的实际模式,它只是一个更简单的例子。您是否需要
CREATE TABLE语句来获取这个确切的架构,或者我可以输入我实际使用的那个吗? -
您需要显示您尝试编写的任何代码;与问题相关。
-
@Barmar 我刚刚为这个确切的示例编写了代码并将其添加到问题中。你觉得你能帮我解决吗?
-
这个问题不是很清楚。该图显示了
manages和works_on之间的关系。但幻灯片没有提到类似的内容。
标签: mysql mysql-workbench entity-relationship aggregation