これはアーキテクチャの質問ですが、その解決策はColdFusionとMySQLの構造にあります。少なくとも私はそう信じています。
データベースに製品テーブルがあり、各製品には任意の数のスクリーンショットを含めることができます。製品のスクリーンショットを表示する現在の方法は次のとおりです。
すべての製品に関連するすべてのスクリーンショットが含まれている単一のフォルダーがあります。すべてのスクリーンショットには、データベース内のproductIDとまったく同じ名前に、プレフィックスを付けた名前が付けられています。
例:productIDが15の製品のスクリーンショットは、15_screen1.jpg、15_screen2.jpgなどの名前のフォルダーimagesにあります。
私のColdFusionページでは、画像パスをHTML(images /)にハードコーディングしました。画像名は2つの部分に分かれています。パート1は、クエリのproductIDを使用して動的に生成されます。パート2はプレフィックスであり、ハードコーディングされています。例えば:
<img src"/images/#QueryName.productID#_screen1.jpg">
<img src"/images/#QueryName.productID#_screen2.jpg"> etc...
この方法は機能しますが、以下にリストされている最大の制限がいくつかあります。
- HTMLテンプレートにスクリーンショットの正確な数をハードコーディングする必要があります。つまり、表示できるスクリーンショットの数は常に同じになります。これは、1つの製品に10個のスクリーンショットがあり、別の製品に5個のスクリーンショットがある場合は機能しません。
- 画像のプレフィックスをHTMLにハードコーディングする必要があります。たとえば、1つの製品に最大5種類のスクリーンショットを関連付けることができます。productID= 15には15_screen1.jpg、15_screen2.jpg、15_FrontCover.jpg、15_BackCover.jpg、15_Backthumb.jpgなどがあります。
製品テーブルにパス列を作成することを考えましたが、それは製品ごとに数百のフォルダーを作成することを意味し、これも効率的ではないようです。
この問題に取り組むための正しい方法について誰かが提案やアイデアを持っていますか?
どうもありがとう!