Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySql表类型,如何自动将列数据从一个表绘制到另一个表?_Mysql - Fatal编程技术网

MySql表类型,如何自动将列数据从一个表绘制到另一个表?

MySql表类型,如何自动将列数据从一个表绘制到另一个表?,mysql,Mysql,我有两个名为“members”和“users”的表,它们都有两列:name和gender。我希望每次我向members表中添加新的“name”,该行“gender”列中的值都会从“users”表中更新: **users:** Emilia - F John - M David - M **members:** Synthia - F 'INSERT INTO members VALUES('David')...or whatever' now **members:** Synthia - F

我有两个名为“members”和“users”的表,它们都有两列:name和gender。我希望每次我向members表中添加新的“name”,该行“gender”列中的值都会从“users”表中更新:

**users:**
Emilia - F
John - M
David - M
**members:**
Synthia - F

'INSERT INTO members VALUES('David')...or whatever'
now **members:**
Synthia - F
David - M
你可以用一个。但是,您不应该在两个不同的表中有性别的副本-这会破坏规范化,需要更多的存储空间,并且有两个副本不同步的风险

相反,您应该使用外键,并在需要来自这两个表的信息时连接表。您可以使用用户名作为外键,或者使用自动增量id(如果有)。

您可以使用。但是,您不应该在两个不同的表中有性别的副本-这会破坏规范化,需要更多的存储空间,并且有两个副本不同步的风险


相反,您应该使用外键,并在需要来自这两个表的信息时连接表。您可以使用用户名作为外键,或者使用自动增量id(如果有的话)。

我想您说的是计算列,但我不确定MySQL是否支持它们(谷歌有点,我可能错了)。为什么不在这两个表上创建一个视图呢?你可以试试像

CREATE VIEW MemberDetail
AS
  SELECT mem.Name,
    usr.Gender
  FROM Members mem
  INNER JOIN Users usr ON mem.Name = usr.Name;

我想你说的是计算列,但我不确定MySQL是否支持它们(谷歌有点,我可能错了)。为什么不在这两个表上创建一个视图呢?你可以试试像

CREATE VIEW MemberDetail
AS
  SELECT mem.Name,
    usr.Gender
  FROM Members mem
  INNER JOIN Users usr ON mem.Name = usr.Name;
语法呢

语法呢


将相同的数据(性别列)物理存储在两个不同的表中违背了关系数据库的规范化原则,并可能导致数据损坏(假设在某一点上,用户中的值被存储在成员中的副本修改了,这可能比您的用户从^ ^开始进行性别更改更令人困惑)物理存储相同的数据(性别列)在两个不同的表中,这违反了关系数据库的规范化原则,并可能导致数据损坏(假设在某个点上,用户中的值被存储在成员中的副本修改了,这可能比用户从^ ^开始进行性别更改更令人困惑)MySQL支持视图(但不是物化视图)因为5.0MySQL支持自5.0以来的视图(但不是物化视图)