मेरी शिक्षा में मुझे बताया गया है कि उपयोगकर्ता के लिए वास्तविक प्राथमिक कुंजी (न केवल डीबी कुंजी, बल्कि सभी प्राथमिक एक्सेसर्स) को उजागर करना एक त्रुटिपूर्ण विचार है।
मैंने हमेशा सोचा था कि यह एक सुरक्षा समस्या है (क्योंकि एक हमलावर अपने स्वयं के सामान को पढ़ने का प्रयास कर सकता है)।
अब मुझे जांचना होगा कि क्या उपयोगकर्ता को वैसे भी एक्सेस करने की अनुमति है, तो क्या इसके पीछे एक अलग कारण है?
इसके अलावा, जैसा कि मेरे उपयोगकर्ताओं को डेटा का उपयोग करना है, वैसे भी मुझे बाहर की दुनिया के लिए कहीं न कहीं एक सार्वजनिक कुंजी की आवश्यकता होगी। अब उस सार्वजनिक कुंजी में प्राथमिक कुंजी के समान समस्याएं हैं, है ना?
एक उदाहरण के लिए अनुरोध किया गया है कि वैसे भी ऐसा क्यों है, इसलिए यहां एक है। ध्यान रखें कि प्रश्न उस सिद्धांत के बारे में है जो न केवल इस उदाहरण में लागू होता है। अन्य स्थितियों को संबोधित करने वाले उत्तर स्पष्ट रूप से स्वागत योग्य हैं।
एप्लिकेशन (वेब, मोबाइल) जो गतिविधि को संभालता है, जिसमें कई यूआई हैं और कम से कम एक स्वचालित एपीआई है चौराहे संचार के लिए (लेखा विभाग जानना चाहता है कि ग्राहक ने जो किया है उसके आधार पर कितना शुल्क लिया जाए)। एप्लिकेशन के पास कई ग्राहक हैं ताकि उनका डेटा अलग हो सके (तार्किक रूप से, डेटा उसी DB में संग्रहीत है) सिस्टम का होना चाहिए। प्रत्येक अनुरोध की वैधता के लिए जाँच की जाएगी चाहे कोई भी हो।
गतिविधि बहुत बारीक है, इसलिए यह कुछ कंटेनर ऑब्जेक्ट में एक साथ है, इसे "टास्क" कहते हैं।
तीन usecases:
- उपयोगकर्ता A उपयोगकर्ता B को कुछ कार्य में भेजना चाहता है, इसलिए वह उसे कुछ गतिविधि करने के लिए एक लिंक (HTTP) भेजता है।
- उपयोगकर्ता B को भवन के बाहर जाना होता है इसलिए वह अपने मोबाइल डिवाइस पर कार्य खोलता है।
- लेखांकन टास्क के लिए ग्राहक से शुल्क लेना चाहता है, लेकिन तीसरे पक्ष के लेखा प्रणाली का उपयोग करता है जो स्वतः ही कुछ कोड द्वारा कार्य / गतिविधि को लोड करता है जो REST को संदर्भित करता है - अनुप्रयोग का API
प्रत्येक usecases की आवश्यकता होती है (या आसान हो जाता है) यदि एजेंट के पास टास्क और गतिविधि के लिए कुछ पता योग्य पहचानकर्ता है।
ON UPDATE CASCADE
उस (mysql specific?) के लिए बनाया गया था, हालाँकि यदि समस्या सुरक्षा की है तो एक्सेस चेक बैकएंड पर होनी चाहिए और उपयोगकर्ता पर वैसे भी भरोसा नहीं करना चाहिए