2012-04-23 186 views
0

请参阅下面的图片,您将看到与我的问题相关的上下文。设计问题

enter image description here

的网站是有才华的摄影师在那里他们可以上传图片,让别人看到他们已经采取了什么网站。

由于设计问题,我在工作中受到了打击。

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

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

所以,当任何用户点击一个particulr图像我需要显示Desc,名称,等等deetails,所以onclick事件的图像,我从点击图像拿起手机号码,并使在数据库中搜索。 (现在有个问题),也就是说,同一个用户(即具有相同的手机号码)可以上传不同的图片到网站,所以使用手机号码搜索会给我很多结果。

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

我准备chAange任何格式,所以请告诉这可怎么解决

回答

2

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

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

说了这么多,你应该考虑分配一个唯一的标识符,以每张照片并用它来命名保存的文件。在MySQL ID列看起来是这样的:

id INT NOT NULL AUTO_INCREMENT 

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

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

0

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

和设计。我建议的图像你去http://www.dynamicdrive.com/

祺红

+0

我不想去考虑时间戳,考虑自动编号,请你提供更多关于自动编号的细节(包括应用程序增长到10万) – user1253847 2012-04-23 05:16:53