亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

PHP 實(shí)現(xiàn)商品的無(wú)限規(guī)格實(shí)現(xiàn)思路

瀏覽:18日期:2022-09-12 17:46:57

在電子商城項(xiàng)目開(kāi)發(fā)中, 會(huì)存在同一種商品存在不同規(guī)格的情況, 如圖某型號(hào)手機(jī)在售賣時(shí)用戶可以選擇的不同規(guī)格:

PHP 實(shí)現(xiàn)商品的無(wú)限規(guī)格實(shí)現(xiàn)思路

這里商品的庫(kù)存量單位(SKU)便不再是該商品, 而是到具體屬性組合出的規(guī)格, 每種規(guī)格可能會(huì)有不同的售價(jià)、運(yùn)費(fèi)與庫(kù)存剩余情況, 所以用戶在購(gòu)買時(shí), 不僅需要記錄所購(gòu)買的商品 ID, 同時(shí)也需要記錄購(gòu)買的該商品的具體規(guī)格。

直觀分析圖示中的規(guī)格情況, 網(wǎng)絡(luò)類型、機(jī)身顏色、機(jī)身內(nèi)存 屬于商品不同屬性的名稱, 與之對(duì)應(yīng)的為屬性可選擇的的具體值, 屬于一對(duì)多關(guān)系, 在 MySQL 數(shù)據(jù)庫(kù)表結(jié)構(gòu)中反應(yīng)出為:

# 商品屬性名 CREATE TABLE `item_attr_key` ( `attr_key_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, # 主鍵, 自增 ID `item_id` INT(10) UNSIGNED NOT NULL, # 關(guān)聯(lián)到商品 `attr_name` VARCHAR(50) NOT NULL, # 屬性名稱 PRIMARY KEY (`attr_key_id`) ); # 商品屬性值 CREATE TABLE `item_attr_val` ( `attr_key_id` INT(10) UNSIGNED NULL DEFAULT NULL, # 對(duì)應(yīng) item_attr_key 表的 attr_key_id, 完成一對(duì)多關(guān)聯(lián) `item_id` INT(10) UNSIGNED NULL DEFAULT NULL, # 關(guān)聯(lián)到商品 `symbol` INT(10) NULL DEFAULT NULL, # 屬性編碼 `attr_value` VARCHAR(255) NULL DEFAULT NULL # 屬性值 );

加入數(shù)據(jù)后表內(nèi)容如圖:

PHP 實(shí)現(xiàn)商品的無(wú)限規(guī)格實(shí)現(xiàn)思路

symbol 字段是對(duì)指定商品 ID 下的屬性值的一個(gè)序號(hào)標(biāo)記, 是為了提高在后面使用到時(shí)的檢索效率。該值在不同商品間可以重復(fù), 在同一商品的屬性中需要保證唯一。

以上就完成了商品 ID 為 6 的商品多屬性的存儲(chǔ)工作。

為了能夠記錄和快速查詢出每種屬性組合出的商品的價(jià)格、庫(kù)存等信息, 我們還需要張表來(lái)維護(hù)這部分?jǐn)?shù)據(jù), 建立 item_sku 表:

# 商品庫(kù)存量單位表 CREATE TABLE `item_sku` ( `sku_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, # 主鍵, 自增 ID `item_id` INT(10) UNSIGNED NOT NULL DEFAULT ’0’, # 關(guān)聯(lián)到商品 `attr_symbol_path` VARCHAR(255) NOT NULL, # 屬性組合出的規(guī)格路徑 `price` DOUBLE(15,2) NOT NULL DEFAULT ’0.00’, # 價(jià)格 `freight` DOUBLE(15,2) NULL DEFAULT ’0.00’, # 運(yùn)費(fèi) `stock` INT(10) UNSIGNED NOT NULL DEFAULT ’0’, # 庫(kù)存數(shù)量 PRIMARY KEY (`sku_id`) );

該表是用戶在添加完商品屬性后, 由系統(tǒng)負(fù)責(zé)生成的該商品所有的可以選擇的屬性組合方案, attr_symbol_path 字段即是該商品不同屬性值的 symbol 字段組合后的路徑, 用來(lái)指示該規(guī)格具體指代哪些屬性。

如 attr_symbol_path 字段值為 1,4,7, 則對(duì)應(yīng) item_attr_val 表中 item_sku.item_id = item_attr_val.item_id 條件下 symbol 字段值為 1, 4, 7 的屬性組合: TD-LTE/FDD-LTE/TDS/WCDMA/EVDO/GSM - 深空灰 - 16GB。

將示例中具有三種網(wǎng)絡(luò)類型、三種機(jī)身顏色、三種機(jī)身內(nèi)存的屬性數(shù)據(jù)生成 SKU 后的 item_sku 表數(shù)據(jù)圖示:

PHP 實(shí)現(xiàn)商品的無(wú)限規(guī)格實(shí)現(xiàn)思路

從圖中數(shù)據(jù)看出, 該商品共有27種不同規(guī)格可選, 那么這時(shí)在確定用戶選擇的某種規(guī)格的價(jià)格等信息時(shí)只需一條 SQL 語(yǔ)句即可完成:

select * from `item_sku` where `item_id`=6 and `attr_symbol_path`=’1,4,7’;

標(biāo)簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 国产亚洲高清在线精品不卡 | 亚洲国产综合精品 | 国产精品2019 | 国产成人盗拍精品免费视频 | 精品国产综合区久久久久久 | 国产精品一区亚洲一区天堂 | 多人伦精品一区二区三区视频 | 国产一区二区在线视频播放 | 黄网在线观看免费 | 亚洲精品午夜一区二区在线观看 | 欧美线在线精品观看视频 | 亚洲qingse中文久久网 | 一级a毛片| 日韩 综合| 国产精品爱久久久久久久三级 | 手机看片国产免费久久网 | 一级毛片视频免费 | 99免费观看视频 | 91成年人免费视频 | 成人18免费入口 | 亚洲精美视频 | 久草青青 | 日韩高清在线二区 | 精品久久久久国产免费 | 亚洲欧美综合国产精品一区 | 在线免费精品视频 | 国产一区二区三区免费观看 | 成人在线亚洲 | 亚欧在线视频 | 久久视频免费 | 男人的天堂黄色 | 琪琪午夜伦埋大全影院 | 美女网站在线观看视频18 | 99久久精品免费看国产免费软件 | 国产乱肥老妇精品视频 | 午夜在线伦理福利视频 | 亚洲免费区 | 美女日韩在线观看视频 | 日本老熟妇激情毛片 | 久久国产视频在线观看 | 中文字幕在线欧美 |