I'm currently trying to better design a database structure for defaults where a reference to preset defaults is maintained globally, but the system is flexible enough to allow for new defaults to be added.Database:Default Fruits----------------------------ID:    Name:       Colour:----------------------------1      Apples      Green2      Oranges     Orange3      Bananas     YellowUser Fruits---------------------------------------------UserID:    DefaultID       Name       Colour---------------------------------------------10         1 10         NULL            Plums      Purple10         2   User 10 would in this scenario be generating a dropdown of Apples, Plums and Oranges.With the above database structure, my problem is that I need to be able to change the colour of an Apple to Black for a particular user but not change it globally. If I auto add the defaults for each user into user fruits, then I could potentially be left with orphan records. Is there a better DB design approach to consider for this scenario or does the above seem sensible? 
How can I maintain a reference to a set of defaults
design;database
The User Fruits table is not pretty. It's redundant to hold information about fruits in two separate places.If you can change the fruit defaults on a per user basis, it would be better if you just had a Fruits table and a User table, and in the Fruits table you had a foreign key to the User table.Fruit Table| ID | Name  | Color | UserID || 1  | Apple | Green | 10     || 2  | Pear  | Brown | 10     |This way, you can modify a fruit for one user without affecting the rest. Maybe you could make a stored procedure (or an application method) that populated the Fruits table with defaults for a user when you insert a new record (or whenever the appropriate time is).