• The problem of possibly changing databases should be catered for in the actual application code by using a data access layer that can be changed according to the database used, not in the database.

    The "black box" data access layer will always take the same inputs and queries from the app and communicate appropriately with the relevant database.

    Visual Studio development makes this easy despite being a Microsoft product!