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

sd2nnvve  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(400)

这是我在这里的第一篇文章。我试着去查其他的主题,但是没有找到符合我要求的。

我的mysql数据库中有三个表(central、development和production)。central是我的父表,我希望在子表(development&production)上有许多列。我为什么要这么做?这是因为我不想与此服务器的不同用户共享central的全部内容(共享此表的所有列)。假设我在central中有一个名为“name”的列,我希望所有访问“development”和“production”的用户都能看到这些表中的“name”,并能够添加信息。因此,他们(访问development&production的用户)可以更改列“name”,也可以处理“central”中未包含的其他字段,这是我的父表。请看附图。
非常感谢。

mklgxw1f

mklgxw1f1#

如果没有更多的信息,下面似乎是你想要的。我假设“中央”的变化反映在“发展”和“生产”上,反之亦然。我假设用户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';

相关问题