我正在爲客戶建立一個EC系統,這個客戶正在銷售二手產品。我的DB計劃大致是這樣的電子商務,產品和股票如何頁面
+-------------+ +-------------+ +-------------+
| Category | | Product | | Stock |
+-------------+ +-------------+ +-------------+
| category_id | | category_id | | stock_id |
| path | | product_id | | product_id |
+-------------+ +-------------+ +-------------+
一個產品類別內,A股是一個產品的項目,股價也包含特定信息:股票串口,狀態(完好,有點破,垃圾)。
現在我需要做一個頁面顯示有庫存產品在每個類別爲例這樣的事情:
TV (big category)
LCD (small category)
SONY super LCD 22'' <- product
Stock 1
Stock 2
Stock 3
Sony super LCD 24''
.... etc ...
PLASMA (category)
Hitachi bla bla plasma
Stock 1
Stock 2
Stock 3
由於用戶可以瀏覽類別的第一級我需要添加某種尋呼系統或者頁面會變得太長,服務器將無法加載。
我最初的計劃是拉出類別和子類別中的所有產品,這些產品會有庫存並對該查詢執行限制。當我得到這些產品時,我會執行n個查詢來獲得實際的庫存行。
由於良好的SQL查詢是更好的那麼長的解釋
SELECT * FROM category c JOIN product p ON c.category_id = p.category_id
WHERE c.deleted = 0
AND p.deleted = 0
AND (c.category_id = 37 or c.path LIKE '/1/37/%')
AND (SELECT count(*) FROM stock s WHERE s.product_id = p.product_id AND s.sell= 1) != 0
LIMIT 10
我會做這樣的
SELECT * FROM stock s WHERE s.sell = 1 AND s.product_id = pulledid
所以來到這裏,我的問題10個查詢後,有沒有更好的方式來做到這一點?你可以在這種方式的一些流量(不要放縱,我知道這真的是一個天真的方法,但我不能與其他東西來)
它會更聰明的限制股票?知道頁面會有一些動態的html(也許是ajax)來組合一些價格相同的html。
是更好地顯示: - 一個產品,所有的股票(在大多數情況下,它不會被更多然後5項) - 頁面通過股票,這意味着產品A可能是第1頁和第2頁。
如果有人有建立這種系統的經驗,並可以給我一些反饋,我將不勝感激。
@Loomis:謝謝你的回答。就像我懷疑它是更好的頁面上的股票,唯一的問題,我可以看到他們有一個300股票(只有這一個)的特殊產品,所以這個類別會產生一個瘋狂的頁數......但我想我不能真的幫助它! – RageZ 2009-11-07 07:28:36
也越來越多,然後10個股票不是一個問題,只是得到每頁正常數量的項目,如果這個數字不總是不一樣的那就好了 – RageZ 2009-11-07 07:29:57