2011-07-07 3 views
0

私は、各商品アイテムがサマリー用のサムネイルイメージと詳細ビュー用のより大きなイメージを持つことができる検索エンジンを持っています。イメージの保存と検索デザインの質問

現在、画像IDは、商品テーブルにimg_idとthumb_idとして格納されており、属性は画像タグを構成するために結合が必要な画像テーブル(幅、高さ、タイプ)に保持されます。画像はサブドメインに保存されます。

製品テーブルには数百万行がありますが、すべての製品に画像があるわけではありません。

イメージテーブルを削除する必要がありますか?そうであれば、イメージをフェッチする方法を教えてください。

もあり、他の小さい製品catelogsは、同様のテーブル構造を事前に

感謝を持って、このシステム上でサービスされています。

は、私が何を探しているイムはここにあると思いHow to store images in your filesystem

+0

アプリケーションで使用するテーブルの定義と正確なクエリを追加できますか? – Karolis

+0

ところで、あなたの主な遅さの問題はイメージテーブルの「左結合」ですよね? – Karolis

+0

は問題の一部です。コインのもう片面は、イメージアップロードルーチンを書き直すことです。新しいリスティングがシステムに投稿されるたびに、イメージテーブルに保存しなければならない場合、多くのオーバーヘッド/面倒を節約できます。 – gus

答えて

0
あなたは安全なすべてのニーズに対して、異なるタイプ(JPG、GIF、...)と異なるimageURLsで「省エネ最適な画像」との間のトレードオフを考える必要があります

この情報は別々に代替は、次のようになります。JPGなど

  • 安全なすべての画像、例えばを
  • 上(ファイルシステムの問題を回避するために
  • 画像名$ rowID_thumb.jpgとして使用すると、$ rowID.jpg
  • ある種のファイルシステムでは膨大な量のデータを扱うことができません)ディレクトリクラスタリングを作成することができます(例えば1/123/1234/123467.jpg、1234567は$ rowIDです)
  • イメージの固定寸法幅と高さを節約する必要性を回避する。すべての画像を同じサイズにするために十分な画像操作関数があります。

私はあなたの独立性を保存するために画像の名前をデータベースに保存しません;-)詳細:ショップアイテムがありますこのショップアイテムには通常の画像とサムネイルが存在します(2つの画像のみ、それ以外の場合は私の提案は最善の解決策ではありません)。私はDBの画像について何も保存しません。代わりに、ショップアイテムのID 123を使用して、getImagePathAndFilename($ id) - > 1/123/123.jpgのようにプログラムでファイル名を生成します。アップロードプロセスでは、別々に保存する必要を避けるために、すべての画像が同じ寸法を持つように注意する必要があります。

+0

はい、私はすべてのファイルをjpgとして保存しようと考えていました。おかげです。 – gus

+0

また、余分なオーバーヘッドが発生し、現在そのモジュールを別の理由で書き換えているので、リストアを保存するときにかなりの違いがあります... – gus

+0

本当にあなたが "あなたの独立を救うためにイメージの名前をDBに保存しない"という意味を確かめてください。私はURLではなく実際のファイル名を格納するだけです。 URLは、画像が格納されているディレクトリに応じて動的です。その方法でディレクトリが変更された場合、URL $ linkを簡単に更新できます。 – gus