Say we have an SQL database with a table Person
and several applications accessing it. For some reason we would like to modify the Person
table in a backward-incompatible way.
One potential solution for keeping compatibility is to rename the table to User
and to create a Person
view that provides the same interface as the legacy table. (Add on insert, on update and on delete triggers as needed).
The approach has the problem that we might run out of available semantically correct names after a few changes.
Is there a well-known best practice for "namespacing" the schema "interface" according to the DB version?
Alternatively, is there a better way to maintain backward-compatibility?