मैं एक एप्लिकेशन के साथ काम करता हूं जो उपयोगकर्ता भूमिका असाइनमेंट को संग्रहीत करने के लिए बिटमास्क का उपयोग करता है। यह बट में दर्द है। यदि यह मुझे पक्षपाती बनाता है, तो दोषी ठहराया जाता है।
यदि आप पहले से ही संबंधपरक डेटाबेस का उपयोग कर रहे हैं, तो यह एक विरोधी प्रतिमान है जो अधिकांश संबंधपरक सिद्धांत और सभी सामान्यीकरण नियमों का उल्लंघन करता है। जब आप अपना खुद का डेटा स्टोरेज बनाते हैं, तो यह इतना बुरा विचार नहीं हो सकता है।
इस तरह की एक चीज है, जिसमें बहुत से टेबल शामिल हो रहे हैं, लेकिन इसे संभालने के लिए रिलेशनल डेटाबेस बनाए गए हैं। यदि प्रदर्शन एक मुद्दा बन जाता है, तो कई अतिरिक्त विशेषताएं हैं: अनुक्रमित, अनुक्रमित विचार, आदि। भले ही आप जिन मूल्यों को देख रहे हैं वे बहुत बार नहीं बदलते हैं, जो बिटमास्क के लिए एक फायदा है, सूचकांक के प्रबंधन के लिए अति-प्रमुख है डेटाबेस पर बहुत आसान है।
यद्यपि डेटाबेस डेटा एकत्र करने का एक अच्छा काम करते हैं, वे तब सुस्त हो सकते हैं जब आप जटिल फॉर्मूला या स्केलर फ़ंक्शंस जैसी चीज़ों को डेटासेट में प्रस्तुत करना शुरू करते हैं। आप अपने ऐप में बिटवाइज़ कर सकते हैं, लेकिन यदि आप सब कर रहे हैं तो आपको संबंधित डेटा मिल रहा है (उपयोगकर्ता की भूमिका देख रहा है), आप इस बात का फ़ायदा नहीं उठा रहे हैं कि आपका डेटा संग्रहण सबसे अच्छा क्या है।
इसके खिलाफ मेरा अंतिम तर्क अन्य डेवलपर्स के लिए सादगी होगा। आपके पास उपयोगकर्ता, भूमिकाएं और असाइनमेंट हैं। यह कई-से-कई संबंध सेट है (क्योंकि एक से अधिक संबंध हैं) जो इतना सामान्य है, इसे प्रबंधित करना आसान होना चाहिए। यह सिर्फ CRUD सामान है।