Skip to main content
3 of 3
replaced http://programmers.stackexchange.com/ with https://softwareengineering.stackexchange.com/

Is it a good idea to use Synonyms to avoid creating a duplicate table?

We have 3 copies of the exact same database. All 3 databases have a Users table, and a User will always exist in all 3 databases with the exact same settings. Anytime we want to add or edit a User we have to update 3 databases.

Would it be a better idea to delete the Users table from databases 2 and 3 and replace it with a Synonym that points to database 1?

Here's the Pros/Cons I can think of:

Pros

  • Easier Maintenance. Can update Users in one location instead of 3
  • User Ids would match between databases (Important since a lot of add-on apps are based on UserId)

Cons

  • Don't think this is standard procedure, so might be confusing
  • Users would have to have identical settings between databases
  • (From gbn's answer below) If Database 1 ever goes down, Database 2 and 3 will also be unavailable. Also there is the potential problem of the data being inconsistent in the event of a restore

This is an option I'm considering for a few different tables containing Settings that are identical between the databases, not just the Users table. I am using Users in the example since it is easy to understand.

Rachel
  • 8.5k
  • 20
  • 50
  • 74