मेरे पास एक कॉलम है: standard BOOLEAN NOT NULL
मैं एक पंक्ति ट्रू, और अन्य सभी गलत लागू करना चाहूंगा। इस बाधा के आधार पर कोई FK या कुछ और नहीं हैं। मुझे पता है कि मैं इसे plpgsql के साथ पूरा कर सकता हूं, लेकिन यह एक स्लेजहैमर की तरह लगता है। मैं एक CHECK
या UNIQUE
बाधा की तरह कुछ पसंद करेंगे । बेहतर सरल है।
एक पंक्ति सत्य होनी चाहिए, वे सभी गलत नहीं हो सकती हैं (इसलिए पहली पंक्ति में सम्मिलित सत्य होना होगा)।
पंक्ति को अद्यतन करने की आवश्यकता होगी, जिसका अर्थ है कि मुझे अपडेट होने तक बाधाओं की जांच करने के लिए इंतजार करना होगा, क्योंकि सभी पंक्तियों को पहले गलत और एक पंक्ति को सही पर सेट किया जा सकता है।
वहाँ के बीच एक FK है products.tax_rate_id
और tax_rate.id
, लेकिन यह डिफ़ॉल्ट या मानक कर की दर है, जो नए उत्पादों को बनाने को कम करने के उपयोगकर्ता चयन है साथ कोई संबंध नहीं है ..
अगर यह मायने रखता है तो PostgreSQL 9.5।
पृष्ठभूमि
तालिका कर की दर है। कर दरों में से एक डिफ़ॉल्ट है ( standard
चूंकि डिफ़ॉल्ट एक Postgres कमांड है)। जब कोई नया उत्पाद जोड़ा जाता है, तो मानक कर दर उत्पाद पर लागू होती है। यदि कोई नहीं है standard
, तो डेटाबेस को या तो एक अनुमान लगाना होगा या सभी प्रकार की अनावश्यक जांच करनी चाहिए। मैंने सोचा था कि सरल समाधान, यह सुनिश्चित करना था कि ए standard
।
ऊपर "डिफ़ॉल्ट" से, मेरा मतलब प्रेजेंटेशन लेयर (UI) से है। डिफ़ॉल्ट कर की दर को बदलने के लिए एक उपयोगकर्ता विकल्प है। मुझे या तो यह सुनिश्चित करने के लिए अतिरिक्त चेक जोड़ने की आवश्यकता है कि GUI / उपयोगकर्ता NULL को tax_rate_id सेट करने का प्रयास नहीं करता है, या फिर बस एक डिफ़ॉल्ट कर दर निर्धारित करता है।