My project modules are organized in such a way that I have to maintain following Database structure.
I’ve 5 schemas, each containing 20 to 50 tables. Each schema is associated with one module of the project.
All the tables that are used within more than one modules are kept in “COMMON” schema.
Each module takes 2 to 5 months to finish.
So when first module is finished we are opening it for use, and continuing with the second one and so on. Meanwhile real data is being inserted into the finished module’s schema. Also table definitions of the finished module’s schema might change slightly depending on the bug fixes and suggestions.
I want to be able to backup/restore, synchronize database schema by schema
(I think it’s called vertical partitioning?)
In DB2 there was a way to put tables to different tablespaces, and backup/restore tablespaces separately.
I’m looking for similar or better solutions for the problem in SQL Server.
So Problems:
- How to apply table definition
changes to the table that’s
containing real data. - Being able to
update/change/restore/backup/synchronize
database schema by schema
Any kind of advices are greatly welcome.
Another way to approach this would to be to create distinct file groups for each schema and manage the back up of each set of files outside of SQL Server if SQL Server doesn’t allow file group specific backups.
Splitting up your db across files can also improve performance, e.g. if you place indexes on a separate filegroup & physical disc from your table data.