Ideálním řešením pro vás by bylo rozdělení modulů do schémat. To vám dává účinnou jednotku izolace na modul a je také přirozeně vhodné pro modulární aplikace (moduly zcela izolované a samo se spravující), spíše než vše skládat do jediného schématu (zejména veřejné). např.
application_database
├── public
├── module_1
│ ├── schema_version
│ ├── m1_t1
│ └── m1_t2
├── module_2
│ ├── schema_version
│ ├── m2_t1
│ └── m2_t2
...
Druhou možností je zůstat pomocí veřejného schématu k hostování všech tabulek, ale použít samostatné schéma pro každou schema_version
. Jedná se o menší úsilí o refaktorování, ale rozhodně méně elegantní design než výše uvedený. např.
application_database
├── public
│ ├── m1_t1
│ ├── m1_t2
│ ├── m2_t1
│ └── m2_t2
├── module_1
│ └── schema_version
│
├── module_2
│ └── schema_version
...