


If things got complicated then most relational databases has schemas that provides further data separation at database levelĪlso the way you asked the question: You feel that something is off with this design and it's true.Some may suggest moving code to database (e.g.Encourage developers to use db transactions because their app cannot control operation integrity.Consult, inform all apps/developers about schema changes, block them from changing schema.Separate stand-alone database management, database release process.

Strict db schema and database constraints.Use single database and mitigate issues created by the fact that there are many apps using same database: The way you asked the question best for you is continue "database first" approach. Make sure to learn how to write performant code the first time as you will be affecting other applications with your code. Use real PK and Fk constraints, define default values, use the correct datatypes so that invalid dates can't be entered etc.ĭo not allow developers to change the database structure without approval from database specialists who know what other applications may be affected by the change. If you have multiple applications hitting the same database make sure that data integrity is maintained by the database not any of the applications! This is critical as otherwise some applications may not know to maintain certain things others need and you will have a data integrity disaster to clean up. Just writing reports when trying to get disparate systems to match up will be nasty. Dups in one system will match to one person in others creating reporting issues. People will have different names and ids in different systems and it will be the worst nightmare you have ever seen. Then you will have a nightmare to maintain and things will get out of synch.
