簡體   English   中英

簡單照片共享站點:如何為多個用戶及其照片構建MySQL數據庫

[英]Simple Photo Sharing Site: How to structure the MySQL database for multiple users and their photos

我是一名學習PHP和MySQL的高中生。 我正在嘗試創建一個簡單的照片共享網站,允許用戶注冊並開始上傳圖像。 每個用戶都有一個顯示所有圖片的個人資料。

我目前只有一個名為“用戶”的表:用戶名,電子郵件,密碼

我該如何為照片設置一張桌子? 我如何鏈接到每張圖片的文件路徑?

謝謝

在您的用戶表上創建一個名為Id的列(這應該永遠不會更改)您通常使用類似INT AUTOINCREMENT數字的內容,因此數據庫會自動分配它,這應該標記為PRIMARY KEY

創建一個名為照片的表格

Table photos
Id = autoincrement primary key
UserID = int (you can set this up as a foreign key, but to keep it simple, just make it indexed)
Title = varchar
Info = varchar
Filename = varchar

Table Photos
Id      |  UserId  | Title    | info | Filename  | (add other columns to suit)
------------------------------------------------------------
1       |  1       | Duck     | xyz  | duck.jpg  | 
2       |  1       | Cat      | xyz  | cat.jpg   | 
3       |  2       | Mouse    | xyz  | mouse.jpg | 

從上面的數據可以看出,照片1和2屬於用戶1,而照片3屬於用戶2

要為用戶名'bob'選擇所有照片,您可以執行以下操作

SELECT Photos.Id, Photos.Filename 
FROM Photos 
JOIN Users ON Photos.UserId=Users.Id
WHERE Users.username = 'bob'

第一個問題是你在哪里存儲用戶的照片? 我會推薦這個:

Table (User's):
Username | Password | Email
---------------------------
user1    | fdgfdg   | fdfgdf
user2    | ffdgfd   | fgdfgf
user3    | dgfdgg   | fgdgdd

然后,每當用戶注冊時,創建一個包含該用戶名稱的文件夾和一個名為照片的子目錄。

為每個用戶創建一個表。

Table user1
Photo     | Title    | info
----------------------------
duck.jpg  | My Duck! | fgdf
cat.png   | Le Cat   | dfgd

然后,當用戶登錄時,列出所有標題並動態鏈接到照片。

所以我會

My Duck --> http://mysite.com/user1/photos/myduck.jpg

如果user1是登錄用戶名,則會自動添加照片,並從數據庫中提取myduck.jpg。

但是,這會打開兩個漏洞: - 熱鏈接 - 如果有人知道用戶名和照片標題,他們可以在未經許可的情況下訪問照片。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM