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

सशर्त विशिष्टता बाधा कैसे लागू करें?

एक और फ़ील्ड में अपनी अनूठी बाधा को परिभाषित करें:deleted और आपके छद्म-अद्वितीय क्षेत्र। फिर, सॉफ्ट डिलीट का प्रतिनिधित्व करने के लिए, मॉडल की आईडी को deleted . पर असाइन करें; हटाए गए आइटम के लिए, 0 असाइन करें।

इस दृष्टिकोण के साथ, हटाए गए आइटमों के लिए, deleted . के बाद से फ़ील्ड लगातार-मूल्यवान है, बहु-फ़ील्ड अद्वितीय बाधा प्रभावी रूप से deleted के मान को अनदेखा कर देगी और केवल छद्म-अद्वितीय क्षेत्रों के लिए विशिष्टता लागू करें; हटाए गए आइटम के लिए, deleted ध्यान में रखा जाएगा, और चूंकि यह अद्वितीय है, इसलिए बाधा हमेशा संतुष्ट रहेगी - इसलिए समान छद्म-अद्वितीय फ़ील्ड के मान वाले मॉडल की कोई भी संख्या सह-अस्तित्व में हो सकती है।

उदाहरण के लिए, निम्न कोड वह हो सकता है जिसकी आप तलाश कर रहे हैं।

class Deletable(models.Model):
    deleted = models.IntegerField(default=0)

    class Meta:
       abstract=True

    def soft_delete(self):
       self.deleted=self.id
       self.save()

class ConcreteModel(Deletable):
    a = models.IntegerField()
    b = models.IntegerField()

    class Meta:
       unique_together=('a', 'b', 'deleted')


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. माई एसक्यूएल। एक संबंधपरक तालिका में प्राथमिक कुंजी। अद्वितीय आईडी या एकाधिक अद्वितीय कुंजी?

  2. MySQL के दो अलग-अलग पासवर्ड हैं?

  3. PHP से MySQL दिनांक फ़ील्ड में वैकल्पिक माह या दिन

  4. वाइल्डफ्लाई mysql को डेटा स्रोत के रूप में पंजीकृत कर रहा है

  5. अधिकतम दो स्तंभों का योग चुनना