2012-04-23 216 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