Mysql 数据库设计:多表&;外键

Mysql 数据库设计:多表&;外键,mysql,sql,database,database-design,Mysql,Sql,Database,Database Design,这是我在这里的第一篇文章。我试图查找其他主题,但没有找到任何符合我要求的内容。 我的MySQL数据库中有三个表(central、development、production)。Central是我的父表,我希望在我的子表(development&production)上有许多列。我为什么要这么做?这是因为我不想与此服务器的不同用户共享central的全部内容(共享此表的所有列)。假设我在Central中有一个名为“Name”的列,我希望所有访问“development”和“production”的

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


非常感谢。

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