Как да моделираме ценови модификатори?

Как да моделирам цената на продукти, които могат или не могат да имат модификатори на цените. Например, да кажем, че имам тениска за продажба с различни размери и различни цветове:

  • Малък, бял = 10 $
  • Малък, черен = $10
  • Голям, бял = 15 $
  • Голям, черен = $20

Имайте предвид, че не всички ценови модификатори ще бъдат „размер“ и „цвят“. Освен това някои продукти може изобщо да нямат модификатори на цените. Как трябва да се моделира тази информация в базата данни?

Усещането ми е да отида с EAV, но винаги се притеснявам, когато започна да мисля за EAV. Начинът, по който бих моделирал това с помощта на EAV, би бил

products
 - id
 - name

prices
- id
- product_id
- attribute
- value

И винаги бих имал атрибут = "сума" и стойност = каквато и да е цената.

Загрижен съм, че това не е правилният начин за моделиране на такива данни. Предложения/отзиви?


person StackOverflowNewbie    schedule 18.02.2015    source източник


Отговори (1)


както знаете, в повечето производствени и особено системи за изчисляване на разходите ще видите различно моделиране и трудности за тези данни, ако сега имате достъп до известни ERP системи, можете да видите тяхната архитектура, но като моя собствена идея атрибутът, който споменахте, е страхотен.

това ви позволява да имате и управлявате лесно всички продукти, атрибути и продуктови атрибути:

products
 - id
 - name

attributes
 - id
 - attribute_id
 - attribute_name
 - attribute_type

product_attribute_values
 - id
 - product_id
 - attribute_id
 - value 

сега имаме проблем с ценообразуването за продукти с множество атрибути, нещото, което мисля, е да уточним колко атрибути имат роля в ценообразуването (т.е. да кажем две), тогава имаме нужда от нещо подобно:

product_attribute_price
 - id
 - product_attribute_values_id_1
 - product_attribute_values_id_2
 - price

както казах, повечето от ERP системите имат страхотна архитектура за такъв сценарий, но аз представям собствената си мисъл, без да копирам нито една от тях, и идеята със сигурност може да има проблеми и да се нуждае от повече преглед

person null    schedule 18.02.2015