I am leading a team of programmers who are re-structuring an existing database. We have a difference of opinion on the following question. I would really appreciate anyone's comments and help on the matter. We have three tables representing tasks, appointments and messages. The three have similar data fields (although not identical). My programmers say that we should unite them into one table, and use views and flags to differentiate them from each other. Also, this means that some fields will necessarily stay null (or 0) for some records, when these fields do not match the type of record they are in. Their strongest argument is that these three tables all use similar junction tables to associate themselves to a users table, i.e. tasks, messages and appointments all have recipients (appointments have attendees, which is the same thing). So, they say, why create three table structures which are similar, instead of combining them into one and then compensating for the differences? My claim is that as long as these three entities are different in definition (at least in the eyes of the user), there is no point in joining them together, and then creating outside mechanisms to turn them back into regular tables. It doesn't seem to save us anything, It creates confusing super-entities which basically contain everytning, and makes it a pain if we ever want to upgrade functionality in the future just for one of these features. Again, all comments will be appreciated.