एक बहु-किरायेदार डेटाबेस है:
- एक DB सर्वर जिसमें प्रत्येक ग्राहक / किरायेदार के लिए एक अलग (समान) डेटाबेस / स्कीमा है ;; या
- एक डीबी सर्वर जिसमें एक डेटाबेस / स्कीमा होता है जहां ग्राहक / किरायेदार एक ही टेबल के अंदर रिकॉर्ड साझा करते हैं?
उदाहरण के लिए, ऊपर विकल्प # 1 के तहत, मेरे पास एक MySQL सर्वर हो सकता है, कहते हैं mydb01.example.com
, और इसके customer1
अंदर एक डेटाबेस हो सकता है । यह customer1
डेटाबेस कह सकता है, 10 तालिकाएँ जो उस विशेष ग्राहक के लिए मेरे आवेदन को शक्ति प्रदान करती हैं (ग्राहक # 1)। इसमें एक customer2
समान 10 टेबल के साथ एक डेटाबेस भी हो सकता है, लेकिन केवल ग्राहक # 2 के डेटा के साथ। इसमें एक customer3
डेटाबेस, एक customer4
डेटाबेस और इतने पर हो सकता है।
ऊपर विकल्प # 2 में, केवल एक ही डेटाबेस / स्कीमा होगा, कहते हैं myapp_db
, फिर से इसमें 10 तालिकाओं के साथ (ऊपर के समान वाले)। लेकिन यहां, सभी ग्राहकों के लिए डेटा उन 10 तालिकाओं के अंदर मौजूद है, और इसलिए वे तालिकाओं को "साझा" करते हैं। और एप्लिकेशन लेयर, लॉजिक और सिक्योरिटी कंट्रोल में जिन ग्राहकों के पास उन 10 टेबलों में कौन से रिकॉर्ड्स तक पहुंच है, और यह सुनिश्चित करने के लिए बहुत सावधानी बरती जाती है कि ग्राहक # 1 ऐप में कभी भी लॉग इन न करें और कस्टमर # 3 का डेटा आदि देखें।
इनमें से कौन सा प्रतिमान एक पारंपरिक "मल्टी-टेनेंट" डीबी का गठन करता है? और यदि नहीं, तो क्या कोई मुझे एक उदाहरण प्रदान कर सकता है (ऊपर वर्णित परिदृश्यों का उपयोग करके) एक बहु-किरायेदार डीबी क्या है?