So in the end it boils down to: What you want the db to hold? When do you need the db to hold it? And... When and where is it necessary to access it by the user? Ahhhhh! Not an algorithm. Many paths, same destination...grasshoppa.