我的 PHP/MySQL 数据库中有两个表。在存储用户详细信息用户名等的表和存储用户上传的图像以及上传该图像的用户名的表上。但是,如果用户更改了他们的用户名,它会在用户详细信息表中更改,但不会在图像上传表中更改。因此,我可以在用户详细信息表中使用一个用户名,例如 tom12,但在图像上传表中,我将拥有 tom12 和他之前上传图像时的所有用户名,例如 Tom34、TMan 等。
我怎样才能做到这一点,当用户详细信息表中的用户名发生变化时,图像上传表中的用户名也会发生变化?
处理此问题的最佳方法是让用户通过键(如数字)识别并将该数字存储在图像表中。这样,当用户更改姓名时,密钥可以保持不变并且不会破坏链接。
示例用户表 id - int 名称 - 字符串电子邮件 - 字符串
示例图像表 id - int user - int image_url - string
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
第一:不需要在镜像表上获取用户名的引用。您需要在图像表中将 ID 字段的引用作为 user_id。
如果您不想更改您的方法,那么您可以在更新时对用户名进行大小写。