2011-02-27 17 views
5

これはフォトギャラリーのデータベースデザインです。私はフィードバックをお願いしますか、それとも改善することができますか?写真ギャラリー - データベースデザイン

photos_category 
- photocat_id (P) 
- name 
- slug 
(5, 'Cars', 'cars') 



photos_albums 
- album_id (P) 
- photocat_id (F) 
- name 
- description 
- active 
(20,5,'BMW','Nice BMW cars',1) 

photos 
- photos_id (P) 
- album_id (F) 
- image 
(33,20,'bmw_car4.jpg') 

bmw_car4.jpgは元のサイズであり、それは位置される。フロントエンドのため /gallery/original/bmw_car4.jpg

(リサイズ):

サムネール:/ギャラリー/親指/ bmw_car4.jpg

画像:/gallery/images/bmw_car4.jpg

答えて

7

あなたのデザインは、私にはかなり正しいようだ:

  • それはシンプルかつfunctionnalだ、
  • 情報のない重複がない
  • 、あなたは、一つのオブジェクトから、その関連情報を見つけることができます


Iだろうただ、あなたが計画している場合1つのディレクトリに多くのファイルがあるのを避けるために、いくつかのサブディレクトリスキームを追加してください。/gallery/original/とサイズ変更されたイメージのディレクトリ)

アップロードの日付(画像の量に応じて月または日)に基づいて、ハッシュメカニズムを追加することができます。などです。たとえば、あなたが持っている可能性があり

  • /gallery/original/2011/01/:1月
  • /gallery/original/2011/02/にアップロードされたすべての画像:

上のすべての2月

  • にアップロードされた画像などを次に、あなたが保管しますファイルの名前だけでなく、photosテーブルのパス

  • +0

    ありがとう、サブディレクトリのスキームは本当に良いアイデアです。私はそれを考えなかった。それは簡単でなければならない。私はパスのための他のフィールドを追加する必要がありますか? photos.path(/ 2011/01 /)、photos.image(bmw_car4.jpg) – user622378

    +0

    いくつかの状況では、ファイルの名前を表示するだけの場合など、2つの異なるフィールドを使用すると便利です。 –

    0

    絶対に、画像テーブルにdoctypeを格納するフィールドを含める必要があります。イメージ検索にとても便利で、アップロードするファイルを制限するのを忘れてしまった場合には、アップロードしたいファイルの種類と、サポートしたいファイルの種類と、 t。私はあなたが見るイメージを含む単語の文書をアップロードしていました。そして、私は「何とかねえ」と考えて、それらのサポートを追加しました。データベースの外部にファイルを保存することは良い考えです。私はalt、name、description、created、last modifiedのミスを犯しました。データベースを使って実際に画像を保存すると、画像データのコンテンツサイズは結果が非常に遅いことを意味しました。あなたは素晴らしい仕事をしてきました。

    関連する問題