Consider multiple relational database schemas that have an inheritance dependency structure as known from OOP systems:


Tables are just a placeholder for arbitrary database objects such as Views, Stored Procedures, etc.

Are there any methods or tools that might help me express this abstraction? Such as a package manager that builds modular create and upgrade scripts?

(I am not talking of O/R Mapping within one database schema. Actually I am primarily thinking about an BI application, so there is no ORM anyway.)

  • Are you trying to develop a multi tenant system? (multiple clients using basically the same app but with the possibility of some customization?) Apr 6 '15 at 14:53
  • No, this is not required. Consider thousands of database instances/installations
    – andreas
    Apr 7 '15 at 19:26
  • I am still not quite sure what you are trying to accomplish. From the diagram it looks like a software as a service platform with multiple clients and possible customization per client. Apr 7 '15 at 19:32
  • I understand "multi tenant system" as multiple clients in one hosting environment, maybe I am wrong here. What I am trying to achieve is a clean versioning at each level. Liquibase looks interesting.
    – andreas
    Apr 8 '15 at 19:49

Perhaps Liquibase can help with its include tag. Put the more common table definitions in separate changesets. Then include these in the more specific ones.

This allows you to maintain the different levels of tables separately, but generate specific databases as required. Plus it adds all the versioning options of Liquibase.

For more information see the documentation of the Liquibase include tag.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.