2012-03-27 10 views
7

मुझे वास्तव में कुछ प्रकार की तालिकाओं से पंक्तियों को हटाने के बारे में मेरे आंत में एक अजीब लग रहा है।MySQL पंक्तियां हटाएं, या "मृत" चिह्नित करें?

उदाहरण के लिए, यदि मेरे पास उपयोगकर्ताओं की एक तालिका है ... जब वे अपनी पंक्ति को पूरी तरह से हटाने की बजाए अपना खाता हटाते हैं, तो मैं "मृत" या निष्क्रिय के रूप में चिह्नित कर रहा हूं। यह मुझे अपने अस्तित्व का रिकॉर्ड बनाए रखने की इजाजत देता है अगर मुझे कभी इसकी आवश्यकता हो।

इस तरह की स्थितियों में - प्रदर्शन, ओवरहेड इत्यादि पर विचार करना - क्या मुझे पंक्ति को हटा देना चाहिए, या बस निष्क्रिय के रूप में चिह्नित करना चाहिए?

कौन सा "आम" है?

उत्तर

4

व्यक्तिगत रूप में, मैं लगभग हमेशा "नरम हटाए गए" का उपयोग के रूप में आप का वर्णन।

यदि स्थान चिंता का विषय है, तो मेरे पास एक नौकरी होगी जो समय-समय पर हटाए जाने के बाद सॉफ्ट-हटाए गए रिकॉर्ड्स को साफ़ कर देगी।

3

शायद आप निष्क्रिय खातों को रखने के लिए डिज़ाइन की गई एक अलग तालिका में निष्क्रिय MySQL रिकॉर्ड स्थानांतरित कर सकते हैं? इस तरह, यदि डेटाबेस का कोई मुद्दा बन जाता है तो आप उन्हें वापस ले जा सकते हैं या तालिका को हटा सकते हैं।

3

डेटा डेटाबेस से स्थायी रूप से हटाए जाने के लिए बहुत मूल्यवान हैं। dead के रूप में चिह्नित करें।

मैं आम तौर पर ऐसे मामलों के लिए स्थिति देता हूं। इस पैटर्न

  1. 0 निष्क्रिय
  2. 1 सक्रिय
  3. 2 ट्रैश किए
+0

मुझे संख्या आधारित दृष्टिकोण पसंद है .. थोड़ा ओवरहेड पर सहेजें :) – johnnietheblack

+0

@ जॉनीएनथहेब्लैक, हाँ 'टिनिंट' पर्याप्त है – Starx

1

"मुलायम" हटाए जाने के अलावा, एक अन्य समाधान "ऑडिट टेबल" का उपयोग करना है। मैंने हाल ही में dba.stackexchange.com पर what they were से पूछा।

लेखा परीक्षा टेबल आम तौर पर इस तरह के सम्मिलित/अपडेट/हटाने के लिए, एक दूसरी तालिका पर प्रदर्शन किया, संभवतः पुराने और नए मूल्यों के भंडारण, समय, आदि के रूप में कार्रवाई, रिकॉर्ड करने के लिए उपयोग किया जाता है

वे एक में चलाता का उपयोग कर कार्यान्वित किया जा सकता सीधा रास्ता।

सकारात्मक:

  • "अप्रयुक्त" डेटा एक अलग तालिका में है
  • यह भोंडा को ठीक कणों से स्तर के- विस्तार घुंडी बंद करना आसान है
  • यह हो सकता है अधिक कुशल अंतरिक्ष के लिहाज से, सटीक क्रियान्वयन के आधार पर

विपक्ष:

  • के बाद से डेटा एक अलग तालिका में है, यह मामला है कि एक पंक्ति "नहीं हटाए गए" थे करने में महत्वपूर्ण संघर्ष
  • यह हो सकता है कारण बन सकता है कम कुशल अंतरिक्ष के लिहाज से, सटीक क्रियान्वयन के आधार पर
1

इस प्रश्न ने मुझे यह मनोरंजक anecdote याद किया। मेरा मुद्दा: कठोर और मुलायम हटाने के बीच चयन करते समय विचार करने के लिए कई कारक हैं कि कोई अंगूठा नियम नहीं है जो आपको बताता है कि कौन सी चुनना है।

संबंधित मुद्दे