आपके लिए एक आदर्श समाधान यह होगा कि आप अपने मॉड्यूल को स्कीमा में विभाजित करें। यह आपको प्रति मॉड्यूल अलगाव की एक प्रभावी इकाई देता है और एक ही स्कीमा (विशेष रूप से सार्वजनिक) में सब कुछ डंप करने के बजाय मॉड्यूलर अनुप्रयोगों (मॉड्यूल पूरी तरह से अलग और स्वयं प्रबंधन) के लिए एक प्राकृतिक फिट है। उदाहरण के लिए
application_database
├── public
├── module_1
│ ├── schema_version
│ ├── m1_t1
│ └── m1_t2
├── module_2
│ ├── schema_version
│ ├── m2_t1
│ └── m2_t2
...
आपका दूसरा विकल्प सभी तालिकाओं को होस्ट करने के लिए सार्वजनिक स्कीमा का उपयोग करते रहना है, लेकिन प्रत्येक schema_version
के लिए एक अलग स्कीमा का उपयोग करना है . यह कम रिफैक्टरिंग प्रयास है लेकिन ऊपर वर्णित की तुलना में निश्चित रूप से एक कम सुरुचिपूर्ण डिजाइन है। उदाहरण के लिए
application_database
├── public
│ ├── m1_t1
│ ├── m1_t2
│ ├── m2_t1
│ └── m2_t2
├── module_1
│ └── schema_version
│
├── module_2
│ └── schema_version
...