2015-08-15 21 views
1

滿足不同的在線商店需求有很多不同的答案。建模產品庫存變量帶圖像的電子商務PHP

我看到很多示例沒有考慮到**庫存和圖片**,並將樣式和大小視爲屬性類標籤並嘗試靈活。這對我來說似乎是錯誤的。我的產品有許多款式/顏色,有多種尺寸。

這裏是我要如何佈局出來

Product 
id | name | price 
1 | shirt | 10.00 

^ Styles      <  Images 
id product_id name      id  styles_id filename 
1 1   red      1    1  image.jpg 
2 1   blue 

^ Size 
id sku styles_id name inventory 
1 n1  1   m 50 
2 n2  1   l 50 

我沒有看到許多這樣的例子,但是,這是情理之中的事情對我最。我完全錯誤和不好這樣做?隨着款式有自己的表,我可以使用圖像的FK加載每種風格的不同外觀

我知道一個缺陷是,如果我有一種產品,只有一種風格和一個尺寸。像冬天的外套一樣。然後我使用額外的表格。用PHP直觀地看,我只是把它全部製作成一個表格。當我開始處理購物車和訂單時,會遇到問題嗎?

注:我使用CakePHP

應對父子方法

是的,我已經看到過,你會不會有反覆的字段或空字段,例如你的表是這樣的

id role  color size inventory price name 
    1  parent -  -  -  -  artShirt 
    2  child red  m  20 50.00  - 
    3  child red  l  20 50.00  - 
    4  child blue  s  20 50.00  - 
    5  child blue  m  20 50.00  - 

如何將img鏈接到紅色的產品?

id product_id image 
1  2   redImg.jpg 
1  3   redImg.jpg 
+0

如果這個設置是一個好主意,很大程度上取決於您想要表示的數據:-)在第一個視圖中,我看起來沒問題。一個問題:做你的產品有相似的風格:紅色,藍色等?如果是這種情況,你可以將它們移到自己的表中,這樣你就不會在數據庫中出現'紅色'一千次(這稱爲規範化,並且你現在擁有的表比你現在多一個)。 –

+0

謝謝,是啊,我想過把名字分開,我擔心有很多桌子。我已經在4張桌子上展示了1款產品。對sql有影響嗎?我只是想得到某人的確認。我是一名自學成才的開發者。似乎有這麼多的解決方案。 – artSir

回答

0

我真的很喜歡的概念叫做父母產品 - 兒童產品。 父母產品被給予sku供參考,但它不是可購買的產品。它代表了產品,就像ArtSir襯衫。它包含ArtSir襯衫的產品說明,質量,關鍵字等。

兒童產品是實際可購買的產品。襯衫。每個兒童產品都有一條記錄,它們與父母產品sku有關的父母產品的sku,顏色,尺寸,價格,體重,庫存等。對於大多數商家來說,庫存是至關重要的,因此每SKU有一個db記錄是真正實現這一目標的唯一可行的方法。 (更不用說如果你需要不同的UPC或EAN代碼)

父母產品和兒童產品都可以在 - 一個簡單的快樂數據庫表。就像一個家庭:-)你可以用sku調用父母產品,然後用父母產品sku獲得孩子產品。

然後當你得到兒童產品時,你可以選擇過濾沒有庫存的產品並不顯示它們。

在產品頁面上顯示特定顏色的產品圖片 - 因此這與產品是否可購買無關。這是演示文稿。最簡單的方法就是將這些信息放入Parent產品記錄中。字段顏色1,照片鏈接,顏色2,照片鏈接等

否則,你可以有一個單獨的數據庫表來做到這一點。試着將其任務限制在演示文稿中。

總是將產品ID傳遞到購物車 - 然後購物車在產品表中查找產品價格。如果公開傳遞產品價格,那麼它很容易被黑客入侵。當你查看價格時,你也可以確認庫存。

建議在開票之前有一個步驟 - 在您向客戶收費之前再次檢查價格和庫存以確認一切正確。

==============響應

編輯質疑。你問: 「你會不會有反覆的字段或空字段,例如你的表是這樣的」

是的,你將有空字段。在1985年或1995年這很重要。它不再重要,除非你在那個時代的機器上運行你的網站。

底線你必須能夠查找sku並獲得價格和庫存。您可以將數組或數據結構放入字段中。 但是你每次打數據庫時都必須打包和解壓縮它們。

如何將img鏈接到紅色的產品?

你可以通過爲父產品創建字段來保存圖像鏈接,顏色參考,名稱等。color01,photolink01,color02,photolink02等黑客攻擊它,但它會工作。

請記住,您正在從父級產品中提取所有頁面顯示信息。所以這只是更多的顯示數據。

您還可以選擇在子產品記錄中添加照片字段。您可能需要產品Feed。那麼你可以從兒童產品中獲取彩色照片結果,並用它來創建顯示。

否則爲顯示生成一個數據庫表。該表還可以幫助上傳產品照片並將其分配給正確的產品。

+0

我更新了我的問題,並回復了您的想法 – artSir

+0

嗨 - 回覆如上。 – cartalot

相關問題