搞砸了设计问题

时间:2012-04-23 03:50:12

标签: javascript java-ee

请参阅下面的图片,您将获得与我的问题相关的背景信息。

enter image description here

该网站是一个有才华的摄影师网站,他们可以上传图片,让其他人看到他们拍摄的内容。

由于设计问题,我的工作很震惊。

用户(无需注册)可以打开我的网站和上传详细信息,如姓名,移动,描述,图像(同一用户可以上传不同的图像),其中手机号码是mantadatory字段。因此,在上传图片时,我将其附加到手机号码+ FileName.jpg,图片将存储在我的服务器内的文件夹内,其余的详细信息如手机号码,desc,名称--etc将存储在MYSQL数据库中。 (这是一部分,已完成)

第二部分是 在页面启动时,我将从该文件夹中获取所有图像(最新修复20个)并在页面上显示。

因此,当任何用户点击特定图像时,我需要显示描述,名称,等等的详细信息,以及该图像的onclick事件,我从点击的图像中获取手机号码并制作一个在数据库中搜索。 (现在这里有一个问题),即同一个用户(具有相同的手机号码)可以将不同的图片上传到网站,因此使用手机号码搜索会给我很多结果。

图片名称格式为83746787695iokI.jpg。

我准备好了任何格式,所以请告诉我们如何解决这个问题

2 个答案:

答案 0 :(得分:2)

如果文件名为83746787695iokI.jpg,您应该能够解析上传者的电话号码和原始文件名,然后使用这些值查询您的照片表。正则表达式可能是:

/^([0-9]{11})(.+)\.jpg$/

话虽如此,您应该考虑为每张照片分配一个唯一的标识符,并使用它来命名您保存的文件。 MySQL中的id列可能如下所示:

id INT NOT NULL AUTO_INCREMENT

插入后,获取新行的ID(在MySQL中为LAST_INSERT_ID())并保存文件名称为#{id}.jpg

请注意,自动增量ID是可预测的整数,您的文件名将为1.jpg2.jpg等。可以使用简单的脚本从服务器下载所有图像。为避免这种情况,请使用随机生成的唯一字符串命名文件,例如UUID。将该字符串存储在表格的新列中,然后使用该字符串识别您的照片。

答案 1 :(得分:0)

这是你可以使用不同的主键。 您可以使用自动编号字段,也可以在将数据存储在数据库中时使用时间戳:)

对于设计我建议你去http://www.dynamicdrive.com/

问候红色