मूल्य निर्धारण उत्पादों के लिए डेटाबेस स्कीमा (पैकेज, पदोन्नति, मात्रा आधारित, सीमित समय की पेशकश ...)


11

मैं एक कंपनी के लिए बिक्री के नए बिंदु पर काम कर रहा हूं जो उत्पाद मिश्रण के आधार पर विभिन्न कीमतों के लिए उत्पाद करता है।

सभी उत्पादों का आधार मूल्य होता है।

अपनी समस्या को समझाने के लिए, मैं निम्नलिखित जानकारी का उपयोग करूंगा:

Product         Category        Price
A               1               45
B               1               70
Q               2               20
R               2               27
S               2               15
X               3               17
Y               3               22
Z               3               16

कंपनी के पास पैकेज हैं, उदाहरण के लिए पैकेज "कॉम्बो": उत्पाद ए या बी के लिए, यदि आप क्यू या आर में से 1 और एक्स, वाई या जेड में से 1 चुनते हैं, तो आपको $ 20 की छूट मिलती है।

केस ए: कभी-कभी ग्राहक ऑर्डर देते समय आधार उत्पाद में जोड़ते हैं, उदाहरण के लिए: वे उत्पाद ए में से एक नहीं चाहते हैं, और वे उत्पाद क्यू और उत्पाद पी जोड़ते हैं जो एक रियायती मूल्य का पैकेज बनाते हैं। फिर वे जोड़ सकते हैं कि वे 1 आर और 1 जेड के साथ उत्पाद बी का 1 चाहते हैं।

केस बी: कभी-कभी ग्राहक 1 ए और 2 बी, 2 क्यू, 1 एस, 2 एक्स और 1 जेड जोड़ेंगे। "कॉम्बो" पैकेज द्वारा निर्धारित नियमों के अनुसार, केवल 2 कॉम्बो लागू होंगे क्योंकि एस एक कॉम्बो आइटम नहीं है।

अन्य प्रचार मात्रा पर निर्भर होते हैं, इसलिए यदि आप 2 बी खरीदते हैं तो आपको 20% की छूट मिलती है और / या समय पर निर्भर होती है, यह केवल 5 बजे के बाद या 10% से पहले 10% से पहले वैध है। एक अन्य पदोन्नति इस बात पर निर्भर हो सकती है कि आपकी अंतिम खरीदारी कब हुई थी या यदि आपने Y समय सीमा में $ X से अधिक की खरीद की है।

मेरी समस्याएं:

1) मैं तालिकाओं की संरचना कैसे करता हूं, इसलिए मैं अलग-अलग पैकेज या प्रचार इस तरह से बनाता हूं कि विभिन्न आवश्यकताओं के लिए विभिन्न प्रकार के प्रचार जोड़ने के लिए बहुत लचीला है?

2) जब वे केस बी (या केस ए और केस बी का मिश्रण) की तरह आदेश देते हैं तो मैं अपनी क्वेरी कैसे बनाऊं ताकि मैं यह देखने के लिए परीक्षण कर सकूं कि उत्पाद मिश्रण क्या है (क्रम में), और उसके अनुसार मूल्य / विवरण अपडेट करें ? अंत में, इस क्वेरी के लिए सबसे अच्छा परिणाम यह होगा कि कौन से पैकेज और प्रमोशन की आवश्यकताएं पूरी होती हैं जिसके क्रम में ग्राहक को सबसे अधिक लाभ मिलता है (अर्थात हो सकता है कि उन्होंने ऑर्डर 1 और 3 के लिए जो आवश्यकताएं पूरी की हों, लेकिन प्रमोशन 3 कम खर्चीला हो।) कई प्रचार के साथ काम करना चाहिए)।

मदद के लिए अग्रिम धन्यवाद!

अद्यतन # 1

हाथ में समस्याओं का बेहतर वर्णन करने के लिए और इस प्रकार अब तक किए गए काम को अद्यतन करने के लिए, मैं उस उत्पाद मॉडल के ईआरडी को लागू कर रहा हूं जो कि संस्थाओं और विशेषताओं तक सीमित है जो कि मुद्दे को प्रभावित करता है (यानी इन्वेंट्री यहां खेल नहीं है, इसलिए कोई सूची नहीं इकाइयाँ मौजूद हैं)।

यहां छवि विवरण दर्ज करें

मैं इस सवाल को प्रभावित करने वाली संस्थाओं और विशेषताओं से नमूना डेटा भी शामिल कर रहा हूं (डेटा पढ़ने को आसान बनाने के लिए, मैं विदेशी कुंजी के स्थान पर नाम / विवरण डाल रहा हूं):

यहां एक कॉम्बो का उदाहरण देते हुए एक फ्लो चार्ट का लिंक दिया गया है, जो टेबल संरचना को समझने का एक तेज़ और दृश्य तरीका है।

PRODUCT
---------
ID  Name
================================
1   Hamburger
2   Cheeseburger
3   Bacon Hamburger
4   Bacon Cheeseburger
5   Orange Juice
6   Apple Juice
7   Coffee
8   Coke
9   French Fries
10  Onion Rings
11  Soup du Jour
12  Hamburger Combo
13  CheeseBurger Combo
14  Bacon Hamburger Combo
15  Bacon Cheeseburger Combo
16  Combo Side
17  Combo Beverage
18  Small Orange Juice
19  Large Orange Juice
20  Small Apple Juice
21  Large Apple Juice
22  Add Extra Patty
23  Add Avocado

PRODUCT COMPONENT
------------------
productFrom                 productTo       
===================================================
Hamburger Combo             Hamburger
Hamburger Combo             Combo Side
Hamburger Combo             Combo Beverage
CheeseBurger Combo          Cheeseburger
CheeseBurger Combo          Combo Side
CheeseBurger Combo          Combo Beverage
Bacon Hamburger Combo       Bacon Hamburger
Bacon Hamburger Combo       Combo Side
Bacon Hamburger Combo       Combo Beverage
Bacon Cheeseburger Combo    Bacon Cheeseburger
Bacon Cheeseburger Combo    Combo Side
Bacon Cheeseburger Combo    Combo Beverage

PRODUCT FEATURE
----------------
ID  Description
=======================
1   Combo Side Option
2   Combo Beverage
3   Juice
4   Orange Juice Size
5   Apple Juice Size
6   Extras

PRODUCT FEATURE APPLICABILITY
------------------------------
product                     productFeature  ProductFeatureApplicabilityType
============================================================================
Hamburger Combo             Combo Side      Required
Hamburger Combo             Juice Flavor    Required
Cheeseburger Combo          Combo Side      Required
Cheeseburger Combo          Juice Flavor    Required
Bacon Hamburger Combo       Combo Side      Required
Bacon Hamburger Combo       Juice Flavor    Required
Bacon Cheeseburger Combo    Combo Side      Required
Bacon Cheeseburger Combo    Juice Flavor    Required


PRODUCT FEATURE APPLICABILITY
------------------------------
productFeature  product             ProductFeatureApplicabilityType
============================================================================
Combo Side      Hamburger Combo             Required
Combo Beverage  Hamburger Combo             Required
Extras          Hamburger Combo             Optional
Combo Side      Cheeseburger Combo          Required
Combo Beverage  Cheeseburger Combo          Required
Extras          Cheeseburger Combo          Optional
Combo Side      Bacon Hamburger Combo       Required
Combo Beverage  Bacon Hamburger Combo       Required
Extras          Bacon Hamburger Combo       Optional
Combo Side      Bacon Cheeseburger Combo    Required
Combo Beverage  Bacon Cheeseburger Combo    Required
Extras          Bacon Cheeseburger Combo    Optional




OPTIONAL FEATURE
------------------
productFeatureFrom  Product             ProductFeatureTo        
=============================================================
Combo Side Option   French Fries
Combo Side Option   Onion Rings
Combo Side Option   Soup du Jour
Combo Beverage                          Juice
Combo Beverage      Coffee
Juice                                   Orange Juice Size
Juice                                   Apple Juice Size
Orange Juice Size   Orange Apple Juice
Orange Juice Size   Orange Apple Juice
Apple Juice Size    Small Apple Juice
Apple Juice Size    Large Apple Juice
Extras              Add Extra Patty
Extras              Add Avocado

इसलिए, समुदाय द्वारा उपलब्ध कराए गए शोध और समर्थन के साथ, जब तक मैं समस्या # 1 को हल करने में सक्षम नहीं हूं। वास्तव में, मैंने ऐसा अधिक लचीलेपन के साथ किया है जितना मैंने सोचा था कि मैं सिस्टम की पहली तैनाती में कर सकता था।

हालाँकि समस्या 2 के साथ कुछ प्रगति हुई है, लेकिन यह संतुष्टि के लिए हल नहीं है। यह कैसे करना है, इस पर कुछ विचार हैं, नील मैकगिलगन ने रिलेशनल डिवीजन (dba.stackexchange.com/questions/45829/what-is-name/of-this-type-type) का उपयोग करके एक संभावित समाधान की ओर एक बड़ा सवाल पूछा। की-क्वेरी-एंड-व्हाट-इस-ए-कुशल-उदाहरण) और इस पुस्तक (www.amazon.com/books/dp/0471380237) ने बहुत मदद की। हालांकि वर्तमान में यह समाधान, और जैसा कि मैं इसे समझता हूं, केवल एक समय में "एक" रिकॉर्ड (कॉम्बो) के साथ काम करता है। यदि कोई ग्राहक चलता है और कहता है कि वह 2 चीज़बर्गर्स, 1 हैमबर्गर, 1 छोटा एप्पल जूस, 1 कोक, 1 फ्रेंच फ्राइज़ और 2 प्याज के छल्ले चाहता है, तो मुझे यह पता लगाने का एक तरीका चाहिए कि मिश्रण में केवल एक कॉम्बो है और दूसरे को जोड़ें बेस प्राइस पर उत्पाद। यदि कई कॉम्बो संयोजन हैं, तो मैं '

एक विचार जो मैं दो समस्याओं को हल करने के लिए आया हूं, वह है कॉम्बो के लिए मुख्य उत्पाद (यानी हैमबर्गर) उत्पाद को जोड़ने के लिए और विशेषता के लिए। फिर मूल्य निर्धारण प्रक्रिया को चलाने के दौरान, ऑर्डर में कौन से उत्पाद मुख्य पैकेज "पैकेज" में हैं, क्वेरी को PRICE COMPONENT टेबल द्वारा दी गई छूट से संबंधित है और उस मूल्य (अवरोही) द्वारा ऑर्डर कर रहे हैं, और पैकेज के क्रम में जाँच करें यह देखने के लिए कि क्या आप बचे हुए गैर-मुख्य उत्पादों के साथ एक "पैकेज" बना सकते हैं, जब तक कि कोई मुख्य उत्पाद न हो या शेष में कोई अधिक गैर-मुख्य उत्पाद न हों तब तक प्रक्रिया को लूप करें।


आपने अब तक क्या किया है ? हमें कुछ ईआर आरेख दिखाएं।
ट्यूलेंस कोर्डोवा

@ user61852 मैं अपने ज्यादातर ERDs हाथ से करता हूं। क्या आप उन्हें कंप्यूटर पर करने के लिए एक उपकरण की सिफारिश कर सकते हैं ताकि मैं इसे साझा कर सकूं? (उम्मीद है कि एक मुफ्त :)
cml

@ user61852 मुझे gliffy.com मिला जो उपयोगी साबित हो रहा है। मैं अपने सवाल को अपडेट करने के लिए मैंने जो काम किया है उसे एक साथ रखकर काम कर रहा हूं।
cml जूल

@ user61852 मैंने ERD, फ्लो चार्ट, एडवांस और सैंपल टेबल डेटा दिखाने के लिए # 1 अपडेट जोड़ा है।
cml

जवाबों:


2

यह जटिल हो सकता है ...

1) मैं तालिकाओं की संरचना कैसे करता हूं, इसलिए मैं अलग-अलग पैकेज या प्रचार इस तरह से बनाता हूं कि विभिन्न आवश्यकताओं के लिए विभिन्न प्रकार के प्रचार जोड़ने के लिए बहुत लचीला है?

आप यह packaged_withनिर्धारित करने के लिए एक तालिका के साथ शुरू कर सकते हैं कि कौन से उत्पादों को समूहीकृत और पैक किया जा सकता है:

पैकेज
-------
  आईडी (पीके)
  नाम

package_group
-------------
  package_id (FK to package.id)
  नाम

packaged_with
-------------
  package_group_id (FK to package_group.id)
  product_id (FK to product.id)
  can_be_packaged_with (उत्पाद के लिए F.)

package_groupएक को संदर्भित करता है packagepackaged_withको संदर्भित करता है , productsऔर package_groupsताकि एक पंक्ति में packaged_withपता चलता है कि किस उत्पाद के साथ उत्पाद पैक किया जा सकता है, और एक पैकेज कई समूहों से बना हो सकता है।

डेटा इस तरह दिखेगा:

पैकेज
-------
आईडी | नाम
------------
1 | कॉम्बो

package_group
------------
आईडी | नाम
---------
1 | क्यूआर समूह
2 | XYZ समूह

packaged_with
-------------
package_group_id | product_id | can_be_packaged_with
----------------------------------------------
1 | ए | क्यू
1 | ए | आर
2 | ए | एक्स
2 | ए | Y
2 | ए | जेड
1 | B | क्यू
1 | B | आर
2 | B | एक्स
2 | B | Y
2 | B | जेड

यह आपको स्वयं उत्पाद पैकेज के साथ मदद करेगा। आपके शेष प्रश्न के लिए मेरे पास कुछ विचार हैं, लेकिन मेरे पास अभी इस उत्तर को समाप्त करने का समय नहीं है ...


प्रचार

आप कई प्रकार के प्रचार सूचीबद्ध करते हैं। आप किसी तरह के नियम-इंजन को देखना चाहते हैं, लेकिन मैं चीजों को उससे ज्यादा सरल रखने की कोशिश करूंगा, लेकिन फिर भी ... यह आपको कल मिलेगा।

आइए सरल प्रमोशन से शुरू करते हैं जहां एक कीमत पर एक निश्चित प्रतिशत छूट दी जाती है:

percent_discount
----------------
  आईडी (पीके)
  नाम
  percent_amount

product_promotions
------------------
  आईडी (पीके)
  product_id (FK to product.id)
  प्रमोशन_आईडी (FK to cent_discount.id)
  आरंभ करने की तिथि
  अंतिम तिथि

यहां हमारे पास एक तालिका है जो स्टोर करती है कि आप उत्पाद के लिए कितना प्रतिशत प्राप्त करते हैं। एक अन्य तालिका वास्तव में छूट की दर से उत्पादों को जोड़ती है, और इसमें एक शुरुआत और अंतिम तिथि भी शामिल है ताकि आप जान सकें कि क्या छूट किसी भी तारीख पर लागू है।

बाद में आने वाले अन्य प्रचारों के लिए विचार ...


जब आप समय लिखते हैं तो मैं बाकी उत्तर पढ़ने के लिए उत्सुक रहता हूं। आपकी सहायता के लिए धन्यवाद।
cml

मैं निश्चित रूप से "नियम-इंजन" देखने जा रहा हूं! यदि आपके पास कोई अच्छा संसाधन लिंक है, तो उन्हें मेरा रास्ता भेजें! मेरी सबसे बड़ी समस्या यह है कि सही पता चल रहा है कि ऑर्डर आइटम (केस बी) की अनियंत्रित, अनियंत्रित सूची पर पदोन्नति क्या लागू होती है।
cml जूल

@ एमएलएम: मुझे पता है कि ऐसे व्यावसायिक उत्पाद हैं जो संभवत: पहले से ही आप चाहते हैं। एक मुझे पता है कि हाइब्रिस कहा जाता है, मैंने सुना है कि एक बहुत ही परिष्कृत पदोन्नति प्रणाली है।
FrustratedWithFormsDesigner

मैंने
cml

1

हालांकि इसका 3 साल पुराना धागा है, फिर भी मैं यह सोचकर जवाब दे रहा हूं कि यह किसी के लिए मददगार हो सकता है।

Table Structure
Table_Offer
--------
ID FK
Name   
start time  
end time   

MandatoryGroup
--------
ProductId (FK to product)

MixGroup1
--------
ProductId (FK to product)


MixGroup2
--------
ProductId (FK to product)


Table_offerDetails
------------------
ID PK
offerId (FK to table_offer)
MandatoryProduct(FK to MandatoryProducts.productID
firstProduct ( fk to MixGroup1.productId)
secondProduct (FK to MixGroup2.productId)

Offer
----
 ID    name    startDate  EndDate 
---    ----     --------   ------
1       COMBO   


MandatoryGroup
-------------
 ID    name 
 ---   ---- 
1      A
2      B


MixGroup1
---------
 ID    name 
 ---   ---- 
 3      P      
 4      Q

MixGroup2
---------
 ID    name 
 ---   ---- 
 5      x      
 6      Y
 7      Z



 OfferHeader
-------------
ID  Customer count(B) B_disc time_disc  stat_disc DiscTotal orderPayableTotal
--  --------- -------  ----   --------  ---------  --------  ------------    
1     BOB     2         20      5         2             

OfferDetails ------------

 ID   offerID   MandatoryProduct     1stProduct    2ndProduct
----  -------    ---------------     ----------    ----------
1       1         A                     P              X
2       1         A                     P              Y
3       1         A                     P              Z
4       1         A                     Q              X
5       1         A                     Q              Y
6       1         A                     Q              Z
7       1         B                     P              X
8       1         B                     P              Y
9       1         B                     P              Z
10      1         B                     Q              X
11      1         B                     Q              Y
12      1         B                     Q              Z

एक OfferDetails का निर्माण करने के लिए, आपको एक अनिवार्य, एक मिक्सग्रुपू 1 और एमिक्सग्रोपू 2 प्रदान करना होगा। तो caseB, केवल 2 प्रस्ताव इस प्रकार है:

1 A and 2 B, 2 Q, 1 S, 2 X and 1 Z
2B 2Q and 2X =2 offers
1A 1Q and 1X=1st offer
1B 1Q and 1X=2nd Offer ... etc other combinations are vivid.

अन्य ऑफ़र व्यावसायिक तर्क पर आधारित हैं: मात्रा ऑफ़र छूट के लिए: ग्राहक के लिए ऑफ़र में B की गिनती खोजने के लिए क्वेरी बनाएं। इसे QTYB कहते हैं। QTYB% 2 खोजें और इसे मात्रा मान के साथ गुणा करें (जो कि $ 20 है)

आंकड़ों की पेशकश के लिए, ग्राहक की खरीद के लिए बस एक और बिटकॉइन कहा जाता है जिसे कमाया गया है। और अर्जित की समाप्ति तिथि निर्धारित करें। अर्जित बिंदु खरीदी गई राशि के समान हो सकता है। अगर खरीदी गई राशि> = $ X की जाँच करें, तो वे नीति के अनुसार छूट जारी करते हैं।

इसी तरह के ऑर्डर समय की तुलना अगर 5PM से पहले और 10AM के बाद होती है तो 5% जारी करें और 10% छूट जारी करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.