一種靈活的商品屬性集實現思路


  在一些商務系統中會對商品的屬性進行管理,方法有很多,可參考文章商品SKU分析和設計。在這里,我分享一種更靈活的實現思路。

   商品屬性設計為公用,屬性由屬性集管理,屬性集也是公用的,如下:

  1. 先定義屬性 Attribute

    這個表只是定義屬性的名稱。

  2. 定義屬性具體的值 Attribute_Value

  

  其中Attribute可直接用Attribute表中的ID,這里用Name只是更好的體現其關系。

  3. 定義屬性集 AttributeSet

   屬性集一般是根據商品來定義的,如衣服的屬性集,手機的屬性集等等。

  4. 定義屬性集的值(即屬性集中包含哪些屬性)AttributeSet_Value:

   其中AttributeSet和Attribute欄位可用具體表中的ID。

  以上四個表完成對商品屬性和屬性集的定義。

  在具體的商品中卻不能直接使用AttributeSet_Value,因為AttributeSet是公用的。

  參考class的實例化引用,具體的商品關聯其屬性集時,可實例化一個屬性集,如:

  5. 定義屬性集實例化 AttributeSetInstance:

  

  衣服的屬性集一般包含顏色和尺寸,但是每種衣服的顏色和尺寸(Value)肯定有所不同,因此實例化一個Coat的屬性集,它的具體值用下表來實現:

  6. 定義屬性集實例值 AttributeSetInstance_Value:

   

  其中Coat被實例化兩次,它的屬性及其Value是不同的。

  

  此時,商品就可以關聯AttributeSetInstance的ID,進而實現了它的屬性(AttributeSetInstance_Value)。

  

  這種實現方式,屬性和屬性集都是可隨時擴展的,而具體的商品在使用屬性集時,通過其實例化來關聯,也沒有與屬性集做強依賴,可算一種靈活的實現思路。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM