我有一個網站,用戶註冊並上傳他們的圖片和視頻作爲他們的投資組合。每個用戶都以某種標準顯示,當訪問者點擊他們的姓名時,他們會看到投資組合。MySQL用戶和文件夾
我的問題是:哪個更好,每個用戶都有文件夾(在註冊名稱或某種類型的unique_id
時創建文件夾),以便他們可以在其中上載其圖像和視頻,或重命名上傳的文件並放置一切都在一個文件夾中或者用二進制blob轉換將圖像直接存儲在數據庫中?
我有一個網站,用戶註冊並上傳他們的圖片和視頻作爲他們的投資組合。每個用戶都以某種標準顯示,當訪問者點擊他們的姓名時,他們會看到投資組合。MySQL用戶和文件夾
我的問題是:哪個更好,每個用戶都有文件夾(在註冊名稱或某種類型的unique_id
時創建文件夾),以便他們可以在其中上載其圖像和視頻,或重命名上傳的文件並放置一切都在一個文件夾中或者用二進制blob轉換將圖像直接存儲在數據庫中?
從性能角度來看,我認爲每個用戶擁有一個目錄會更好。 NTFS分區上目錄的最大限制似乎超過40億,這對任何應用程序來說應該都足夠了。
如果你使用的是Linux/Unix,你可以擁有的最大文件夾數量也會因分區類型而異,但是如果NTF的限制足夠大,我想ext3或者任何被記錄的文件系統應該有足夠的空間限制也是如此。
關於是否更好地將圖像存儲在數據庫或文件系統上,其他人已經指出了一個衆所周知的related question here。我的觀點是,一般來說,任何一種解決方案都能很好地工作,並且兩者都有優點和缺點,從而使決策最終成爲一種品味問題。
文件或數據庫如前所述重複。
關於文件存儲:
有很多不同的方法來執行此操作。這取決於所需的性能,用戶數量,文件數量等。
例如,如果一個人上傳成千上萬的文件,將它們全部放在一個文件夾中並不明智。
如果您擁有數百萬用戶,則不需要像userdata/{userid} /這樣的結構,因爲您將在userdata /中獲得數百萬個文件夾。這也會帶來可能的問題。
例如,您可以通過將用戶數據保存在不同服務器上來實現某種分片方法。所以當選擇「只保存爲普通文件」時,可能有很多選項。
[在DB中存儲圖像的可能的副本 - 是或否?](http://stackoverflow.com/questions/3748/storing-images-in-db-yea-or-nay) – 2012-01-30 17:24:52
可能相關:[Storing DB中的圖像 - 是或否?](http://stackoverflow.com/q/3748/367456),[在數據庫中存儲文件有什麼優點和缺點?](http://stackoverflow.com/q /367456分之2458739)。 – hakre 2012-01-30 17:27:02