সমস্যাগুলি সমাধান করার জন্য এবং একই সাথে আমারও একই সমস্যা রয়েছে। যেহেতু আমার সাআস মাল্টি-টেন্যান্ট অ্যাপ্লিকেশনগুলি তৈরির বহু বছরের অভিজ্ঞতা রয়েছে আমিও সম্পর্কিত ডেটাবেসগুলির সাথে আমার পূর্ববর্তী অভিজ্ঞতার ভিত্তিতে দ্বিতীয় বিকল্পটি নির্বাচন করতে যাচ্ছিলাম।
আমার গবেষণা করার সময় আমি এই নিবন্ধটি মংডোব সমর্থন সাইটে খুঁজে পেয়েছি (যাবার পরে আবার যুক্ত হয়েছে):
https://web.archive.org/web/20140812091703/http://support.mongohq.com/use-cases/m -tenant.html
ছেলেরা যে কোনও মূল্যে ২ য় বিকল্প এড়াতে বলেছিল, যা আমি বুঝতে পেরেছি যে মঙ্গডব বিশেষভাবে নির্দিষ্ট নয়। আমার ধারণাটি হ'ল এটি ডেটাবেস ডিজাইনের সুনির্দিষ্টতার কারণে আমি গবেষণা করা বেশিরভাগ নোএসকিউএল ডিবিএসের জন্য প্রযোজ্য (কোচডিবি, ক্যাসান্দ্রা, কাউচবেস সার্ভার ইত্যাদি)।
সংগ্রহগুলি (বা বালতিগুলি বা তারা এটিকে বিভিন্ন ডিবিতে ডাকে) আরডিবিএমএসের সুরক্ষা স্কিমার মতো জিনিস নয় যদিও তারা নথিপত্রের ধারক হিসাবে আচরণ করে যদিও তারা ভাল ভাড়াটে বিচ্ছিন্নতা প্রয়োগের জন্য অকেজো। সংগ্রহের উপর ভিত্তি করে সুরক্ষা বিধিনিষেধ প্রয়োগ করতে পারে এমন NoSQL ডাটাবেস আমি পাইনি।
অবশ্যই আপনি ডেটাবেস / সার্ভার স্তরে অ্যাক্সেসকে সীমাবদ্ধ করতে মোংডব ভূমিকা ভিত্তিক সুরক্ষা ব্যবহার করতে পারেন। ( http://docs.mongodb.org/manual/core/authorization/ )
আমি প্রথম বিকল্পটি সুপারিশ করব যখন:
- এই দৃশ্যের নকশা, বাস্তবায়ন এবং পরীক্ষার জটিলতা মোকাবেলার জন্য আপনার কাছে পর্যাপ্ত সময় এবং সংস্থান রয়েছে।
- আপনি যদি বিভিন্ন ভাড়াটেদের জন্য ডাটাবেসে কাঠামো এবং কার্যকারিতা নিয়ে খুব বেশি পার্থক্য না রাখেন।
- আপনার অ্যাপ্লিকেশন ডিজাইনটি ভাড়াটিয়াদের রানটাইমে কেবলমাত্র নূন্যতম কাস্টমাইজেশন করার অনুমতি দেবে।
- আপনি যদি স্থানটি অনুকূল করতে চান এবং হার্ডওয়্যার সংস্থানগুলির ব্যবহারকে ন্যূনতম করতে চান।
- আপনার যদি হাজার হাজার ভাড়াটিয়া থাকে।
- আপনি যদি দ্রুত এবং ভাল ব্যয়ে স্কেল করতে চান।
- যদি আপনি ভাড়াটেদের উপর ভিত্তি করে ডেটা ব্যাকআপে না যান (প্রতিটি ভাড়াটে জন্য আলাদা ব্যাকআপ রাখুন)। এমনকি এই দৃশ্যেও এটি করা সম্ভব তবে প্রচেষ্টা বিশাল হবে।
আমি ভেরিয়েন্ট 3 এ যাব যদি:
- আপনার কাছে ভাড়াটেদের ছোট তালিকা রয়েছে (কয়েকশ)।
- ব্যবসায়ের সুনির্দিষ্ট বিবরণগুলির জন্য আপনাকে বিভিন্ন ভাড়াটিয়াদের (যেমন তৃতীয় পক্ষের সিস্টেমের সাথে সংহতকরণ, ডেটা আমদানি-রফতানি) ডাটাবেস কাঠামোর বড় পার্থক্য সমর্থন করতে সক্ষম হওয়া প্রয়োজন।
- আপনার অ্যাপ্লিকেশন ডিজাইন গ্রাহকদের (ভাড়াটেদের) অ্যাপ্লিকেশন রানটাইমের (মডিউল যুক্তকরণ, ক্ষেত্রগুলি অনুকূলিতকরণ ইত্যাদি) উল্লেখযোগ্য পরিবর্তন করার অনুমতি দেবে changes
- আপনার যদি নতুন হার্ডওয়্যার নোডগুলি দ্রুত স্কেল করার জন্য পর্যাপ্ত সংস্থান থাকে।
- আপনার যদি ভাড়াটে প্রতি ডেটা সংস্করণ / ব্যাকআপ রাখার প্রয়োজন হয়। এছাড়াও পুনরুদ্ধার করা সহজ হবে।
- আইনী / নিয়ন্ত্রণমূলক বিধিনিষেধগুলি রয়েছে যা আপনাকে বিভিন্ন ভাড়াটিয়াকে বিভিন্ন ডাটাবেসে (এমনকি ডেটা সেন্টার) রাখতে বাধ্য করে।
- আপনি যদি পুরোপুরি মুগডব-এর-র বাইরে সুরক্ষা বৈশিষ্ট্য যেমন ভূমিকার জন্য ব্যবহার করতে চান।
- ভাড়াটিয়াদের মধ্যে আকারের ক্ষেত্রে বড় পার্থক্য রয়েছে (আপনার অনেক ছোট ভাড়াটে এবং কয়েকটি খুব বড় ভাড়াটে রয়েছে)।
আপনি যদি আপনার অ্যাপ্লিকেশন সম্পর্কে অতিরিক্ত বিশদ পোস্ট করেন তবে সম্ভবত আমি আপনাকে আরও বিশদ পরামর্শ দিতে পারি।