我的PHP / MySQL数据库中有两个表。在存储用户详细信息用户名等的表上,以及存储用户上传的图像以及上载该图像的用户名的表。但是,如果用户更改了用户名,则会在用户详细信息表中更改,但不会在图像上载表中更改。所以我可以在用户详细信息表中使用一个用户名,例如tom12,但在图像上传表中,我将拥有tom12以及他上传图像的所有先前用户名,例如Tom34,TMan等。
如何制作它,以便当用户详细信息表中的用户名更改时,它将在图像上传表中更改?
答案 0 :(得分:3)
处理此问题的最佳方法是让用户通过密钥(如数字)进行标识,并将该数字存储在图像表中。这样,当用户更改其名称时,密钥可以保持不变并且不会中断链接。
示例用户表 id - int name - 字符串 电子邮件 - 字符串
示例图像表 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
答案 1 :(得分:0)
首先:无需在图像表上获取用户名的引用。您需要在图像表中将ID字段的引用作为user_id。
如果您不想更改您的approch,那么您可以在更新时对用户名进行大小写。