इस बिल्ली त्वचा के लिए कई तरीके हैं, कुछ तकनीकों मैं के बारे में सोच सकते हैं। उपयोगकर्ता के लिए सभी भूमिकाओं को हटाएं और फिर पुनः डालें। आम तौर पर उपयोगकर्ता केवल कुछ भूमिकाओं (10 से कम) से संबंधित होता है। साथ ही, एक अच्छा मौका है कि कोई अन्य विदेशी-कुंजी इस से कई टेबल तक लिंक नहीं है।
2. परिवर्तन के रखें ट्रैक और लागू केवल परिवर्तन
यह इस मामले में, अधिक काम, लेकिन और अधिक कुशल है, भले ही बस थोड़ा सा। ORMs
जैसे टूल्स इस तरह के परिवर्तनों को एक हवा को ट्रैक और लागू करते हैं।
3. उपयोगकर्ता के रूप में परिवर्तन
इस मामले में मुझे लगता है कि यह अंत उपयोगकर्ता सहयोगियों की भूमिका निभाने के लिए उपयोगकर्ता के रूप में डीबी परिवर्तनों को लागू करने से स्वीकार्य है बनाता परिवर्तन लागू करें। शायद यह एक स्थानीय डेटाबेस है और प्रत्येक लेनदेन अल्पकालिक है। लेकिन मुझे लगता है कि यह एक असंभव परिदृश्य है।
मुझे नहीं लगता कि इस विशेष मामले को हटाने और पुनः सम्मिलित करने के लिए कुछ भी गलत है।
स्रोत
2012-02-17 20:24:42
यही कारण है कि हमारे पास पैरामीटर क्यों हैं, आप उपयोगकर्ता आईडी और रोलआईडी को पैरामीटर के रूप में पास करते हैं और फिर आप करते हैं: 'MyTable से हटाएं जहां उपयोगकर्ता आईडी = @UserID और roleID = @ RoleID' – JonH
यह वास्तव में एक बेहतर सवाल है सतह। यदि आपके पास एक UI है जो आपको तालिका के कई पक्षों को संपादित करने देता है और बैच मोड में अपडेट करता है जब उपयोगकर्ता सहेजता है (उन्हें एक समय में करने की बजाए) यह संभव है कि कोई अन्य उपयोगकर्ता आपके नीचे तालिका को संशोधित कर सके ताकि आप यह सुनिश्चित नहीं है कि, उदाहरण के लिए, किसी अन्य उपयोगकर्ता ने यूआई – JohnFx