のmySQLデータベーステーブルがありますproducts
。データベースの負荷を軽減するためにキャッシュレイヤーを利用していますが、アプリケーションをさらに高速化するために、キャッシュレイヤーに格納する必要のある実際のデータを最小限に抑えることをお勧めします。
訪問者に表示されるデータベース内のすべての製品には、価格が付加されています。
価格は、と呼ばれる別のテーブルに保存されprices
ます。各訪問者(顧客)が適用する割引レベルに応じて、複数の価格カテゴリがあります。時々、各製品の特別価格が利用可能であることを意味するキャンペーンがあります。特別価格は、というテーブルに保存されますspecials
。
- テーブルを結合する一時テーブルを作成するのは悪いことですか?
必要な情報だけがあり、もちろんキャッシュされます。
-------------|-------------|------------
| productId | hasPrice | hasSpecial
-------------|-------------|------------
1 | 1 | 0
2 | 1 | 1
そうすることで、特定の製品が実際に価格を持っているかどうかを知るのが非常に簡単になります。製品をリストまたは提示するたびに、完全なprices
ものまたは表を繰り返す必要はありません。specials
- 一時テーブルはWebアプリケーションで一般的なものですか、それとも単に悪い設計ですか?