Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

अनुवर्ती:डेटाबेस में वस्तुओं पर छूट का मॉडल कैसे करें?

ProductPricing . का डिज़ाइन तालिका हमें कभी भी पुराने मूल्य निर्धारण डेटा को हटाने की अनुमति नहीं देती है (कभी-कभी प्रबंधन उस डेटा के आधार पर एक रिपोर्ट चाहता है)। आपने जो ऊपर वर्णित किया है, उसके साथ आप इस तरह से शुरू करेंगे (मैंने शुरू करने की तारीख को बदल दिया है ताकि यह चुनना आसान हो जाए कि हाँ, सिस्टम के लागू होने पर यह मूल कीमत थी):

ProductPricing
   1   |    Jan 1, 1970, 00:00:00 |   Jan 1, 2038, 00:00:00  |   10$ |   10$

अब मान लें कि आप अपने सेब पर छूट की कीमत देते हैं, और आप सक्रिय रहना चाहते हैं और बिक्री समाप्त होने पर सिस्टम स्थापित करना चाहते हैं:

ProductPricing
   1   |    Jan 1, 1970, 00:00:00 |  Dec 20, 2011, 00:00:00  |   10$ |   10$
   1   |   Dec 20, 2011, 00:00:01 |  Dec 26, 2011, 00:00:00  |  7.5$ |   10$
   1   |   Dec 26, 2011, 00:00:01 |   Jan 1, 2038, 00:00:00  |   10$ |   10$

हमने यहां जो किया वह था:

  1. 2038 टाइमस्टैम्प के साथ मौजूदा रिकॉर्ड को अपडेट करें, endDateTimeStamp को बदलें बिक्री की शुरुआत को दर्शाने के लिए फ़ील्ड
  2. बिक्री को परिभाषित करने के लिए एक नया रिकॉर्ड डालें
  3. सामान्य कीमत को फिर से दर्शाने के लिए एक और नया रिकॉर्ड डालें

ओवरलैपिंग टाइमस्टैम्प के बिना, जब आप अपने मूल्य के लिए डेटाबेस से पूछताछ करते हैं तो आपको एक रिकॉर्ड प्राप्त करने की गारंटी दी जाती है। इस प्रकार,

SELECT p.Name, pp.price, pp.original_price
FROM Product p
INNER JOIN ProductPricing pp ON pp.productId = p.productId
WHERE NOW() BETWEEN pp.startDateTimeStamp AND pp.endDateTimeStamp

आपको वर्तमान मूल्य निर्धारण के साथ एक उत्पाद सूची मिलेगी।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL 5.7 से MySQL 8.0 पर जाना - आपको क्या पता होना चाहिए

  2. PHP में लूप के साथ मैं एक ही आईडी डेटा कैसे सूचीबद्ध कर सकता हूं?

  3. CodeIgniter का उपयोग करके 3 तालिकाओं में कैसे शामिल हों I

  4. एक प्रश्न में नोड-mysql एकाधिक कथन

  5. तैयार बयानों का उपयोग करके डेटा संग्रहीत नहीं किया गया