views:

26

answers:

3

The scenario is two products that share the same user/client/group information but have no other common data, is it best practice to have a single database or two databases where the user/client/group information is regularly synced from one to the other?

A: 

Unless you expect the user data to diverge, I see no good reason to store it twice. In normalizing databases the first thing you learn is to get rid of repeating data.

Having two places to maintain the user data seems superfluous.

jjclarkson
A: 

This is why authentication belongs in an LDAP server entirely outside the database.

S.Lott
+1  A: 

I would at least start with sharing the database design and the code that you write to access the database.

Whether or not you want to share the actual tables depends on the deployment of the products? Are you going to deploy the products in a situation where the userbase is largely the same for both products and/or both products are administered by the same person or do they have disjoint userbases and is maintaining the user administration the responsibility of different people?

Edit: I think you have answered your own question in your comment: share the user tables, it's the same users why store their data twice?

Jeroen Huinink
The userbase is the same. The situation is analogous to something like Google Mail and Google Docs, same users (anyone with a Google account) but different products. User admin will be centralised for both products.
Shaun