数据库设计:多个表和外键

时间:2018-08-23 19:23:14

标签: mysql sql database database-design

这是我在这里的第一篇文章。我尝试查找其他主题,但没有找到符合我要求的内容。 enter image description here 我的MySQL数据库中有三个表(中央,开发,生产)。 Central是我的父表,我希望在子表(开发和生产)上有很多列。我为什么要这样做?这是因为我不想与该服务器的不同用户共享Central的全部内容(共享此表的所有列)。假设我在Central中有一列“名称”,我希望所有访问“开发”和“生产”的用户在这些表中看到“名称”,并能够添加信息。因此,他们(正在访问开发和生产的用户)将能够更改“名称”列,并且还可以处理我的父表“中央”中未包含的其他字段。请参阅附图。

非常感谢。

1 个答案:

答案 0 :(得分:0)

没有更多信息,以下内容似乎是您想要的。我假设“中心”的变化反映在“发展”和“生产”中,反之亦然。我假设用户x,y和z是数据库用户,而不是应用程序用户,并且它们已经存在。我假设您的数据库名称是“ app”。

CREATE VIEW development AS
SELECT id, name, investment, inventory FROM central;

CREATE VIEW production AS
SELECT id, name, address, revenue FROM central;

GRANT all ON app.central TO 'x'@'somehost';
GRANT all ON app.development TO 'x'@'somehost';
GRANT all ON app.development TO 'y'@'somehost';
GRANT all ON app.production TO 'x'@'somehost';
GRANT all ON app.production TO 'z'@'somehost';