我正在使用PHP的MySQL應用程序店面應用程序。目前我正在將數據存儲在4個表格中:一個用於產品線,一個用於這些產品線中的特定產品,一個用於產品圖像,另一個用於指定哪些圖像與哪些特定產品相關聯。每個特定產品屬於一個產品線,每個產品圖像可以屬於幾個特定產品,並且每個特定產品可以具有多個圖像。我的桌子是這樣的:我應該如何存儲在線商店的產品和產品圖像數據?
ProductLines
id, name, description, etc.
SpecificProducts
productLineID
id, color, size, etc.
ProductImageLinks
specificProductID
imageID
Images
id, imageFileLocation, name, etc.
它的工作方式很好,但它似乎不是很有效的檢索目的。
例如,我有一個頁面,其中列出了每條產品線以及該產品線中隨機選擇的圖像的縮略圖。爲此,我必須首先查詢數據庫以獲取所有產品線的列表,然後分別查詢每個產品線,以獲取具有關聯圖像的所有特定產品,選擇其中一個,然後再次查詢獲取圖像。
我考慮過的另一種可能性是使用一個查詢來獲取我正在查看的所有產品線,第二個查詢爲所有這些產品系列獲取所有特定產品,第三個查詢獲取所有產品線指定哪些圖像鏈接到哪些特定產品的圖像鏈接,以及獲取所有這些圖像的第四個查詢。我想這會因爲查詢數量減少而變得更快一些,但是它會爲PHP做很多工作來確定產品線和產品與圖像之間的聯繫,這可能會很慢。
所以我的問題是,有沒有更好的方式來存儲這些數據?或者更好的方法來檢索它基於我已經有的數據庫?或者是我確定的兩個選項之一真的是我最好的選擇?
編輯:我實際上並沒有將圖像文件存儲在數據庫中。圖像文件存儲在文件系統中。我的數據庫中的「圖像」表只存儲圖像文件的位置以及圖像標題,替代文字等有用信息。
何時檢索圖像?在瀏覽器請求它之前不需要獲取它 - 因此提取圖像不應該是構建該頁面的一部分 - 只應在html中插入一個鏈接 – nos 2009-07-18 21:02:38
「image」我只是表示圖像的數據結構。我實際上並沒有檢索圖像文件,只是數據庫中的數據告訴我圖像文件的URL以及像alt文本這樣的有用信息。對不起,不清楚。 – Robert 2009-07-18 21:25:52