2

わかりましたので、主に私が初心者であるため、過去数か月間これに対処してきました... 私は読書と調査を行い、これが結果です...

Web サイトのギャラリーの画像テーブルのモデルを設計しています。基本的には、画像をアップロードして(filename)、5つの異なるサイズ(smallthumbmedium、 )largeを作成しますbig

さまざまなサイズのガイドラインを既に設定しています。

  • アップロードする画像の最小サイズは 100px です
  • ---> 常に作成smallおよびthumbサイズ変更
  • アップロードされた画像が 100 px より大きい場合 ---> create small, thumb, mediumsize
  • アップロードされた画像が 350 px より大きい場合 ---> create small, thumb, medium, largesize
  • アップロードされた画像が 700 px より大きい場合---> create small, thumb, medium, sizelargebig

各サイズには、サイズを表すfilename+ a で定義された独自のファイル名があります。suffixしたがって、小さな画像ファイル名には_s接尾辞 (1234_s.jpg) が付き、サムネイルには_t接尾辞 (1234_t.jpg) が付きます...

また、最終的には約 125,000 枚の画像をアップロードすることになるため、小さなファイル システム構造を作成することにしました。これに似たもの:

http://www.mywebsite.com/gallery/images/0/6/image1.png
http://www.mywebsite.com/gallery/images/5/4/image2.png

画像へのパスはファイルに存在しconfig.php、データベース内の画像フォルダーへの相対パスを名前付きの列の下に保持します relative_dir

また、ブラウザで問題なく表示されるように、幅と高さを維持する必要があります (表示するサムが多数ある場合、getimagesize を使用すると、サーバーに大きな負荷がかかる可能性があります)。

それで、数週間の読書と調査の後、私はこれを思いつきました(私は初心者であることを思い出してください)

フィードバック、提案はありますか?

IMAGE
-----------------------
image_id
title
caption
relative_dir
filename
small_filename
small_width
small_height
thumb_filename
thumb_width
thumb_height
medium_filename
medium_width
medium_height
large_filename
large_width
large_height
big_filename
big_width
big_height
4

1 に答える 1

2

value1value2value3またはあなたの場合smallは 、mediumのような列largeがあることは、非正規化の問題を示しています。かさばるテーブルになり、画像サイズを追加 (または削除) したい場合は、スキーマを変更する必要があります。_width/列が必要な理由はわかりません。_heightそれぞれのサイズの状態に基づいて静的な幅/高さがあるように見えるためです (たとえばsmall、常に 100px です)。次の 3 つのテーブルをお勧めします。

ImageUploads -- canonical image table
iuID, title, caption, relative_dir, filename
(do you need *both* relative_dir/filename)

ImageSizes -- settings for sizes; width/height may go here as well
isID,
sizeName (small, medium, large, big, thumb)
sizeSuffix (_s, _m, _l, _b, _t?)

Images
iuID, isID

テーブルを使用するImagesと、正規の画像ファイル名、タイトル/キャプションなどを簡単に取得できます。必要なサフィックスを取得します。幅/高さは、個々のファイルごとに異なる必要がある場合はこのテーブルに、ImageSizesサイズごとに異なる場合はこのテーブルに入ります。デフォルトを使用したいが柔軟性を考慮したい場合は、両方を使用することもできます。

于 2013-02-12T19:57:45.400 に答える