Ürün karışımına bağlı olarak farklı fiyatlara ürün satan bir şirket için yeni bir satış noktası üzerinde çalışıyorum.
Tüm ürünlerin taban fiyatı vardır.
Sorunumu açıklamak için aşağıdaki bilgileri kullanacağım:
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
Şirketin Paketleri var, örneğin "Combo" Paketi: ürün A veya B için, Q veya R'den birini seçerseniz ve X, Y veya Z'den birini seçerseniz 20 $ indirim alırsınız.
Durum A: Bazen müşteriler sipariş verirken temel bir ürüne eklenirler, örneğin: Ürün A'dan birini istemezler ve indirimli fiyata sahip bir paket oluşturmak için Ürün Q ve Ürün P'yi eklerler. Daha sonra 1 R ve 1 Z ile 1 ürün B istediklerini ekleyebilirler.
Durum B: Bazen müşteriler 1 A ve 2 B, 2 Q, 1 S, 2 X ve 1 Z ekleyecektir. "Combo" Paketi tarafından belirtilen kurallara göre, S birleşik öğe olmadığı için sadece 2 kombinasyon kullanılabilir.
Diğer promosyonlar miktara bağlıdır, bu nedenle B'den 2 satın alırsanız% 20 indirim ve / veya zamana bağlı olursanız, yalnızca 5 PM'den sonra veya 10:00'dan önce% 10 indirimden önce geçerlidir. Başka bir promosyon, son satın alma işleminizin ne zaman gerçekleştiğine veya Y zaman diliminde X dolardan fazla satın alma işleminize bağlı olarak değişebilir.
Benim sorunlarım:
1) Tabloları nasıl yapılandırabilirim, böylece farklı paketler veya promosyonlar, farklı gereksinimlere sahip farklı promosyon türleri eklemek için çok esnek olacak şekilde oluştururum?
2) Durum B (veya Durum A ve Durum B'nin bir karışımı) gibi sipariş verdiklerinde, sorgumu nasıl yapılandırabilirim, böylece hangi ürün karışımlarının siparişte olduğunu görmek için test yapabilir ve fiyatları / açıklamaları buna göre güncelleyebilirim ? Nihayetinde, bu sorgu için en iyi sonuç, hangi paketlerin ve promosyonların müşteriye en fazla fayda sağlayan siparişlerin yerine getirildiği gereksinimleri döndürür (örneğin, sipariş ettikleri şey promosyon 1 ve 3 için gereksinimleri karşılar, ancak promosyon 3 daha ucuzdur. birden çok promosyonla çalışmalıdır).
Yardımınız için şimdiden teşekkür ederiz!
GÜNCELLEME # 1
Eldeki sorunları daha iyi tanımlamak ve bunları çözmek için şimdiye kadar yapılan çalışmaları güncellemek için , sorunu etkileyen varlıklar ve niteliklerle sınırlı bir Ürün Modeli ERD'si ekliyorum (yani envanter burada yürütülmüyor, bu nedenle envanter yok varlıklar var).
Ayrıca bu soruyu etkileyen varlıklardan ve niteliklerden örnek veriler de ekliyorum (verileri okumayı basitleştirmek için, Yabancı Anahtarlar yerine ad / açıklamaları koyuyorum):
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
Bu yüzden, toplumun bilinceye kadar sağladığı araştırma ve destekle, Sorun # 1'i çözebildim. Aslında bunu, sistemin ilk kurulumunda yapabileceğimi düşündüğümden daha fazla esneklikle yaptım.
Problem 2 ile ilgili ilerlemeler olmasına rağmen, memnuniyetle çözülmemiştir. Bunun nasıl yapılacağı hakkında bazı fikirler var, Neil McGuilgan İlişkisel Bölümü kullanarak olası bir çözüme doğru giden harika bir soru sordu (dba.stackexchange.com/questions/45829/what-is-the-name-of-this-type- bir sorgu-ve-ne-bir-verimli-örnek) ve bu kitap (www.amazon.com/books/dp/0471380237) çok yardımcı oldu. Ancak şu anda bu çözüm ve anladığım kadarıyla, aynı anda sadece "bir" kayıt (combo) ile çalışır. Bir müşteri yürür ve 2 çizburger, 1 hamburger, 1 küçük elma suyu, 1 kola, 1 patates kızartması ve 2 soğan halkası istediğini söylüyorsa, karışımda sadece bir combo olduğunu tespit etmek ve diğerini eklemek için bir yola ihtiyacım var ürünleri temel fiyata. Birden fazla kombinasyon kombinasyonu varsa, ben
İkinci sorunu çözmek için bulduğum bir fikir, combo (yani hamburger) için ana ürün olan PRODUCT COMPONENT flag'ini eklemek ve atfetmek. Daha sonra fiyatlandırma işlemini çalıştırırken, siparişte hangi ürünlerin "pakette" ana ürünler olduğunu, sorguyu PRICE BİLEŞENİ tablosunda verilen indirimle ve bu değere göre sıralayarak (azalan) sorgulayın ve bu paket sırasını kontrol edin kalan ana olmayan ürünlerle bir sorgu ile bir "paket" oluşturup oluşturamayacağınızı görmek ve daha fazla ana ürün kalmayana veya geri kalanında artık ana olmayan ürün kalmayana kadar işlemi döngüye sokmak.