【问题标题】:Make same column in two tables always have same data?使两个表中的同一列始终具有相同的数据?
【发布时间】:2013-06-14 08:54:49
【问题描述】:

我的 PHP/MySQL 数据库中有两个表。在存储用户详细信息用户名等的表和存储用户上传的图像以及上传该图像的用户名的表上。但是,如果用户更改了他们的用户名,它会在用户详细信息表中更改,但不会在图像上传表中更改。因此,我可以在用户详细信息表中使用一个用户名,例如 tom12,但在图像上传表中,我将拥有 tom12 和他之前上传图像时的所有用户名,例如 Tom34、TMan 等。

我怎样才能做到,当用户详细信息表中的用户名发生变化时,图像上传表中的用户名也会发生变化?

【问题讨论】:

  • 能否给我们一些代码或表格定义

标签: php mysql database


【解决方案1】:

处理此问题的最佳方法是通过键(如数字)识别用户并将该数字存储在图像表中。这样,当用户更改姓名时,密钥可以保持不变而不会断开链接。

示例用户表 id - 整数 名称 - 字符串 电子邮件 - 字符串

示例图像表 id - 整数 用户 - 整数 image_url - 字符串

USERS
===================
ID  NAME   EMAIL
1   joe    joe@joe.com
2   ben    ben@somesite.ru
3   jerry  jk@yahoo.xj

IMAGES
===================
ID   USER  IMAGE_URL
1    1     http://somesite.com/images/mypic.jpg
2    1     http://somesite.com/images/myotherpic.jpg
3    1     http://somesite.com/images/funny.gif
4    3     http://yahoo.xj/users/jk/personal/holiday.jpg

【讨论】:

    【解决方案2】:

    首先:不需要在镜像表上获取用户名的引用。需要在图片表中将ID字段引用为user_id。

    如果您不想更改您的方法,那么您可以在更新时对用户名进行大小写。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-25
      • 2012-04-27
      • 1970-01-01
      相关资源
      最近更新 更多