डेटाबेस के लिए:
ए एक ही डाटाबेस पर सब कुछ रखो, अपने टेबल पर एक tenant_id स्तंभ डाल
सकारात्मक: कीड़े को बहुत होने का खतरा:
विपक्ष करने के लिए आसान: एक किरायेदार से दूसरे डेटा में डेटा रिसाव करना आसान है।
बी एक ही डाटाबेस पर सब कुछ रखो, लेकिन अपने स्वयं के नाम स्थान में प्रत्येक किरायेदार डाल
पेशेवरों (PostgreSQL उन्हें स्कीमा कॉल): प्रदान करता है बेहतर डेटा विकल्प की तुलना में सुरक्षा रिसाव एक
विपक्ष: नहीं सभी डेटाबेस द्वारा समर्थित है। AFAIK PostgreSQL और ओरेकल इसका समर्थन करता है।
सी सेटअप किरायेदार
प्रति एक डेटाबेस पेशेवरों: बिल्कुल एक किरायेदार से दूसरे
विपक्ष को लीक डेटा की कोई संभावना नहीं: नई किरायेदारों की स्थापना अधिक जटिल है। डेटाबेस कनेक्शन महंगा हैं।
मैंने केवल गाय नाओर के उपरोक्त विचारों को सीखा। यहां उनकी प्रस्तुति का एक लिंक दिया गया है: http://aac2009.confreaks.com/06-feb-2009-14-30-writing-multi-tenant-applications-in-rails-guy-naor.html
#B में, सभी डेटाबेस समर्थन स्कीमा, लेकिन अलग शब्दावली के साथ। MySQL में, स्कीमा और डेटाबेस समानार्थी हैं। एमएसएसक्यूएल में अब स्कीमा समर्थन भी है। उत्पादन में हमारा बहुतायत ऐप ~ 4000 (अब तक) डाटाबेस/स्कीमा के साथ MySQL पर चलता है। –