[英]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.