Una solución ideal para usted sería dividir sus módulos en esquemas. Esto le brinda una unidad efectiva de aislamiento por módulo y también es una opción natural para aplicaciones modulares (módulos completamente aislados y autogestionados), en lugar de volcar todo en un solo esquema (especialmente público). por ejemplo
application_database
├── public
├── module_1
│ ├── schema_version
│ ├── m1_t1
│ └── m1_t2
├── module_2
│ ├── schema_version
│ ├── m2_t1
│ └── m2_t2
...
Su segunda opción es seguir usando el esquema público para alojar todas las tablas, pero use un esquema individual para cada schema_version
. Este es un esfuerzo de refactorización menor pero ciertamente un diseño menos elegante que el mencionado anteriormente. por ejemplo
application_database
├── public
│ ├── m1_t1
│ ├── m1_t2
│ ├── m2_t1
│ └── m2_t2
├── module_1
│ └── schema_version
│
├── module_2
│ └── schema_version
...