Centralized Database for user information Our current setup is that we have what I would call a centralized database that holds user information that is shared by several different databases. We have the several databases to separate out data from different apps, as only the user information is common between them. What is the best way of handling this? Currently we can't have foreign keys to user id as that is in a different database. Also, we have to hard code that separate database name in any stored procedures or queries that may need the user data, which makes it a pain to develop with as I can only have 1 development database rather than keeping one that works with different branches. Does anyone have a suggestion for a better way of handling this (other than bringing the databases together)?
Design is largely driven by personal preference, and I don't have enough context to tell you if you're approach is one I would agree with or not.  However, if you wish to proceed with your current setup, I can at least provide some answers to your questions.


  Currently we can't have foreign keys to user id as that is in a different database.... Does anyone have a suggestion for a better way of handling this (other than bringing the databases together)?


As you suspect you cannot define an explicit foreign key relationship between objects in different databases.  This StackOverflow post walks through a simple way to configure an implied fkey relationship, however it uses triggers that come with inherit risks and this approach will be unable to take advantage of any performance improvements you would get with a typical foreign key relationship.


  Also, we have to hard code that separate database name in any stored procedures or queries that may need the user data, which makes it a pain to develop with as I can only have 1 development database rather than keeping one that works with different branches. Does anyone have a suggestion for a better way of handling this (other than bringing the databases together)?


If you want to avoid hard links in your code to other databases, configure synonyms for said objects that exist in another database so your code doesn't have to use any three-part queries.