नो-स्पष्टीकरण प्रश्न:
वहाँ वैसे भी 2 अशक्त मूल्यों की एक विवशता है कि हमेशा मूल्य के लिए 1 की आवश्यकता होती है? उदाहरण के लिए दो तारीख स्तंभ दोनों शून्य हैं, लेकिन कम से कम 1 है जिसमें एक मान होना आवश्यक है
समस्या का विवरण:
मान लीजिए कि मेरे पास व्यय नामक तालिका है
और 2 तारीखें हैं:
prevision_expense_expiration_date दिनांक NULLABLE व्यय_पेमेंट_डेट DATE NULLABLE
उन 2 स्तंभों का तर्क निम्नलिखित है:
मैंने कुछ की खरीदारी की और मुझे पता है कि मुझे इसके लिए भुगतान करना होगा, कुछ तारीख, जैसे फोन बिल। मैं एक व्यय_पेमेंट_डेट के साथ व्यय के रूप में दर्ज करूंगा। यह तिथि वह तिथि है जिसे मुझे भुगतान करना चाहिए, लेकिन भुगतान की वास्तविक तिथि, चालान की समाप्ति तिथि की तरह नहीं।
अन्य स्थिति में मैं इसे सेवा के लिए कुछ प्रदाता का उपहार कार्ड बेचता हूं। मेरे पास मेरे प्रदाता को खरीदने का खर्च हो सकता है यदि ग्राहक कार्ड को रिडीम करता है तो ही मेरे ग्राहक को सेवा हस्तांतरित की जाएगी । इसलिए उपहार कार्ड की समाप्ति तिथि है, मैं उपहार कार्ड के वैध होने के समय खर्च के रूप में सम्मिलित किए बिना उस 'व्यय' के लिए एक प्रस्ताव करना चाहता हूं, अगर उपहार कार्ड की समय सीमा समाप्त हो जाती है, तो उस खाते में 'खर्च' दर्ज नहीं होना चाहिए प्रणाली।
मुझे पता है कि मेरे पास 2 समान रूप से टेबल हो सकते हैं जिन्हें प्रीविज़न_एक्सपेन्स और कन्फर्म_फंसेन्स कहा जाता है, लेकिन यह सही नहीं लगता है इसलिए मेरे पास एक ही टेबल, 2 तारीख, अशक्त है, लेकिन मैं विवश या कुछ करना चाहता हूं ताकि एक की हमेशा आवश्यकता हो।
एक और सकारात्मक रणनीति है:
payment_date पूरा नहीं है
तो, इस मामले में, यदि तारीख प्रीविजन है बूल वैल्यू 1 होगी, अन्यथा 0. कोई शून्य मान नहीं होगा, सब अच्छा है। सिवाय इसके कि मैं बीओटीएच मूल्यों को संग्रहीत करने का विकल्प चाहता हूं, जब पहले मेरे पास एक प्रीव्यू डेट है और उस खर्च के लिए THEN (दो दिन बाद कहते हैं) की पुष्टि की तारीख है, उस स्थिति में रणनीति 2 के साथ मेरे पास वह विकल्प नहीं होगा।
मैं डेटाबेस डिजाइन में सब कुछ गलत कर रहा हूँ? : डी
CHECK
बाधा के साथ भी ऐसा कर सकते हैं । निरंतर कॉलम की कोई आवश्यकता नहीं है।