मैं शायद प्रत्येक फ़ील्ड का विवरण संग्रहीत करता हूं, और फिर भूमिकाएं और स्थिति जो उन्हें संपादित कर सकती है, और इसे इस तरह से कर सकती है।
सिस्टम के नियम क्या हैं? असल में, क्या वास्तव में 300 संभव स्थितियां हैं? या यह है कि वास्तव में कुछ फ़ील्ड केवल कुछ स्थिति के लिए संपादन योग्य हैं, और फिर केवल कुछ भूमिकाएं उन क्षेत्रों को संपादित कर सकती हैं? या यह है कि कुछ फ़ील्ड कुछ भूमिकाओं के लिए भी उपलब्ध हैं?
अगर यह पूर्व की अधिक है मैं शायद कुछ इस तरह होगा:
तीन प्राथमिक तालिकाओं (विस्तार करने के लिए इसे आसान बना देता है यदि आप एक क्षेत्र, भूमिका या स्थिति को जोड़ने):
फिर दो लिंक टेबल:
- Field.Id और Role.Id
- Field.Id और Status.Id
किसी भी आदेश और उपयोगकर्ता आप तो पा सकते हैं जो फील्ड्स आदेश की वर्तमान स्थिति के लिए संपादित किए जाने योग्य के लिए
फिर, और उपयोगकर्ता भूमिका, और जैसे ही आप फ़ील्ड के माध्यम से काम करते हैं, एक्सेस अधिकारों को उचित रूप से सेट करते हैं - हालांकि आप नियंत्रण सेट करते हैं - या तो आप जो संग्रह वापस लेते हैं, या पृष्ठ पर स्थिर रूप से आधारित होते हैं, उन्हें गतिशील रूप से उत्पन्न करते हैं।
यदि आपके पास कोई समस्या है जहां भूमिका स्थिति को ओवरराइड कर सकती है, तो आप फ़ील्ड/रोल टेबल में एक बुलियन भी स्टोर कर सकते हैं, यह दर्शाता है कि फ़ील्ड स्थिति के बावजूद उपलब्ध हो सकता है या नहीं।
स्रोत
2009-01-16 14:04:16