摘要:可擴展性百度百科的定義是設計良好的代碼允許更多的功能在必要時可以被插入到適當?shù)奈恢弥小UY徫镘嚿唐穬?yōu)惠券都是獨立的系統(tǒng)及功能,不要看做商品在購物車內(nèi)。可維護性百度百科的定義是系統(tǒng)的可維護性是衡量一個系統(tǒng)的可修復恢復性和可改進性的難易程度。
本章適合初級工程師及中級工程師細看,大佬請隨意前言
問 [不存價格字段不行嗎?直接查詢商品表獲取價格]
答 [如果價格更新,應提示用戶,商品的浮動信息。可以選擇直接更新購物車,或者多帶帶建立一個表,來記錄更新的價格和信息,類似京東]
問 [聯(lián)表查詢可以從商品表中知道商品是否上架]
答 [商品不存在了如何聯(lián),只會將邏輯整復雜,未來包括降價提醒,無貨提醒,下架提醒,購物車該如何查詢就成了一個問題]
業(yè)務上來看,無論是多表查還是單表存都是合理的,列出以下在購物車上的相關部分業(yè)務
庫存不足提醒 (提高付款概率)
降價提醒 (提高付款概率)
商品下架提醒
有關商品的商品優(yōu)惠券或其他活動 (提高付款概率)
以技術角度說明
降價提醒多表的降價提醒需要第三張表支撐 <商品修改記錄表>
多表這時購物車內(nèi)的商品與商品表存在關聯(lián),檢測降價的系統(tǒng)就需要在商家修改價格時將檢測結(jié)果后查詢加入本商品的購物車,順便去查詢商家修改前價格,算出差價,發(fā)送到隊列或者其他的手段,用戶接收到降價通知,刺激消費。這時你發(fā)現(xiàn),這貌似沒有什么地方有問題,如果這時候需要增加一個業(yè)務,按照用戶加入購物車的時間,提示他在加入購物車后這段時間降價多少?這時是否需要在來個加入購物車的記錄表,這樣不斷的多級關聯(lián),看似沒有問題,實際將業(yè)務耦合,一次sql要關聯(lián)N個表,如果這時增加sku和spu那就更不用說了。在未來量級上升后是支撐不住的,并且也不方便擴展。
單表[我的設計并不是最好的,僅此參考] , 在考慮到未來業(yè)務不斷增加的問題,我是將價格與標題和商品的SKU加入到購物車表內(nèi),在商戶修改時無需關心其他表,直接檢索與修改商品相關的購物車,拿出價格,計算差價,提示用戶。如果計算加入購物車這段實際降價多少,這其實與上述操作一樣,對于單表的設計上,這2種需求實為一種解決方案。在查詢上也是一條sql語句的實現(xiàn)。
當然,我們還是需要關聯(lián)上,不知道未來的某一天就用的上了呢?商品下架
有很多場景,都要將標題呀,內(nèi)容呀直接存儲,類似與收藏的店鋪和商品,無論賣家怎么做,用戶購物車,訂單不能動,這是基準。
商品下架,用戶的購物車實際是不能動的,某貓的做法是使其變灰,讓用戶自行刪除。
商家分很多種,商品的標題,圖片或者分類修改了,都屬于下架,這時的多表關聯(lián)查詢就徹徹底底的失效了。
其實商品的下架應該直接通知購物車下架 (變灰),并非關聯(lián)查詢是否下架。如果你非要這樣做,那你依舊需要做一些表去記錄。
我并不是說不需要做記錄。而是記錄的表實際是不參與業(yè)務查詢的。
邏輯邏輯這里特指代碼的架構(gòu)編寫。以php為例,可以參考我之前的文章 https://segmentfault.com/a/11...
在邏輯方面,要考慮方面比較多,類似sql的性能,代碼的性能,服務器的性能等。盡量避免多表查詢吧。
百度百科的定義是
可復用性(Reuseability)復用又叫重用,是重復使用的意思。目前,一般軟件的復用率并不高,尤其在國內(nèi)。復用的好處可以得到 較高的生產(chǎn)效率以及隨之而來的成本降低、較高的軟件質(zhì)量(錯誤可以更快的被糾正)以及 恰當?shù)氖褂脧陀每梢愿纳葡到y(tǒng)的可維護性。
在購物車的設計上,重用主要提現(xiàn)在商品信息的存儲方式上,避免多次去聯(lián)表查詢,在業(yè)務量大后的份表分庫提現(xiàn)會更明顯。
可擴展性百度百科的定義是:
設計良好的代碼允許更多的功能在必要時可以被插入到適當?shù)奈恢弥小_@樣做的目的的是為了應對未來可能需要進行的修改,而造成代碼被過度工程化地開發(fā)。
正常購物車、商品、優(yōu)惠券都是獨立的系統(tǒng)及功能,不要看做商品在購物車內(nèi)。現(xiàn)實和邏輯并非是一脈相承的。就假設在實際生活中,物品僅僅是放在購物車中,如果不結(jié)賬,依舊不屬于自己。為了方便擴展更多業(yè)務,盡量在設計之初,功能與功能之間不要“粘”在一起。
可維護性百度百科的定義是:
系統(tǒng)的可維護性是衡量一個系統(tǒng)的可修復(恢復)性和可改進性的難易程度。所謂可修復性是指在系統(tǒng)發(fā)生故障后能夠排除(或抑制)故障予以修復,并返回到原來正常運行狀態(tài)的可能性。而可改進性則是系統(tǒng)具有接受對現(xiàn)有功能的改進,增加新功能的可能性。
購物車的設計之初也是考慮未來商品的業(yè)務功能各種變更。不如簡單點,直接將其屬性存到購物車。
復雜度初期的設計,決定未來開發(fā)及重構(gòu)的復雜度。功能與功能,系統(tǒng)與系統(tǒng)之間盡量避免直接關聯(lián)。
統(tǒng)計后期的數(shù)據(jù)統(tǒng)計、計算也會受到前期設計的影響。
致謝感謝你們看到這里,下一篇我會講一下關于電商系統(tǒng)的商品設計的部分。有什么問題可以評論區(qū)提問。謝謝
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/28867.html
摘要:前言這是電商系統(tǒng)設計系列在商品設計這塊的最后一篇文章。電商系統(tǒng)商品相關的文章已經(jīng)到了尾聲如果有其他商品相關的文章需要編寫可以私信聯(lián)系我畢竟我也是公司員工寫這些文章并不是我的工作,只是記錄我的職業(yè)生涯。 showImg(https://segmentfault.com/img/bVbePdh?w=1260&h=628); 前言 這是電商系統(tǒng)設計系列在商品設計這塊的最后一篇文章。以下是其他...
摘要:致謝感謝你們看到這里,下一篇我會講一下關于電商系統(tǒng)的商品設計的部分。 showImg(https://segmentfault.com/img/bVbclTs?w=500&h=329); 電商大伙每天都在用,類似某貓,某狗等。電商系統(tǒng)設計看似復雜又很簡單,看似簡單又很復雜本章適合初級工程師及中級工程師細看,大佬請隨意 前言 設計以以下為工具講起 PHP為開發(fā)語言 基于Laravel框...
摘要:訂單號用戶商品標題商品價格商品封面圖商品其他屬性小明愛瘋手機其他屬性像上表中設計,有人會問了那關聯(lián)的意義何在呢我的回答是保持數(shù)據(jù)關聯(lián),雖然商戶有可能改變商品屬性,但作為一名程序員,應該盡可能的記錄用戶所有的動作。 showImg(https://segmentfault.com/img/bVbdtuc?w=1824&h=1028); 電商大伙每天都在用,類似某貓,某狗等。電商系統(tǒng)設計看...
摘要:商品詳情接口商品表按索引查詢商品信息。接著,我們來看看和定義名稱概念解釋標準產(chǎn)品單位剝離銷售屬性的部分,例如小米。 前言 建議使用大屏設備(例如pad/pc),可以更好的瀏覽本篇文章 今天我們開始「商品系統(tǒng)」的篇章。本文分為如下五大模塊: 需求分析 架構(gòu)設計 Spu和Sku的故事 數(shù)據(jù)模型設計 接口設計 第一篇我們主要看看一個入門的電商平臺(B2C)如何去構(gòu)建自己的基礎商品信息,其...
摘要:夏日葵電商從大方面談微信商城怎樣提高用戶體驗度網(wǎng)購對于用戶的意義來說就是買到一個自己需要的東西,至于在什么平臺上買其實區(qū)別不大,在這種情況下提高用戶體驗度就顯得更加重要了。 夏日葵電商:從5大方面談微信商城怎樣提高用戶體驗度 網(wǎng)購對于用戶的意義來說就是買到一個自己需要的東西,至于在什么平臺上買其實區(qū)別不大,在這種情況下提高用戶體驗度就顯得更加重要了。作為最成功的電商平臺之一,淘寶網(wǎng)不斷...
閱讀 781·2021-11-09 09:47
閱讀 1568·2019-08-30 15:44
閱讀 1143·2019-08-26 13:46
閱讀 2107·2019-08-26 13:41
閱讀 1266·2019-08-26 13:32
閱讀 3772·2019-08-26 10:35
閱讀 3519·2019-08-23 17:16
閱讀 448·2019-08-23 17:07