Shared or isolated database?
Posted: Sun Nov 02, 2008 11:25 pm
Spinning off jshpro2's post in this thread: viewtopic.php?f=19&t=90062
I'm about to start on a project that sounds similar to his, that I discussed a little in this thread: viewtopic.php?f=19&t=87218
Basically, my boss and I are discussing the pros and cons of a shared database vs isolated databases for each client. I am posting in this forum because that decision impacts the entire application design, and I'd like to discuss people's thoughts. My boss is leaning towards a shared codebase, because he's trying to reduce fragmentation in db schema. I am leaning towards isolated databases, because I don't want to be limited by the schema. I want complete flexibility to add/edit/delete any number of fields/tables without worrying about destroying data in other sites.
I think that if we develop a strong workflow, fragmentation issues shouldn't be a problem. For the application, I'd like to move us to SVN and liberally use its tagging and merging capabilities. Creating a new site should be able to be done automatically using a script by checking out the latest build from the repository. For the database, I'd like to keep all updates in .sql files numbered in chronological order, and keep a flag in a config file with the database version each site is at.
Theoretically that should mean we can keep old sites up to date, while leaving complete flexibility for development on new sites. Thoughts?
I'm about to start on a project that sounds similar to his, that I discussed a little in this thread: viewtopic.php?f=19&t=87218
Basically, my boss and I are discussing the pros and cons of a shared database vs isolated databases for each client. I am posting in this forum because that decision impacts the entire application design, and I'd like to discuss people's thoughts. My boss is leaning towards a shared codebase, because he's trying to reduce fragmentation in db schema. I am leaning towards isolated databases, because I don't want to be limited by the schema. I want complete flexibility to add/edit/delete any number of fields/tables without worrying about destroying data in other sites.
I think that if we develop a strong workflow, fragmentation issues shouldn't be a problem. For the application, I'd like to move us to SVN and liberally use its tagging and merging capabilities. Creating a new site should be able to be done automatically using a script by checking out the latest build from the repository. For the database, I'd like to keep all updates in .sql files numbered in chronological order, and keep a flag in a config file with the database version each site is at.
Theoretically that should mean we can keep old sites up to date, while leaving complete flexibility for development on new sites. Thoughts?