Imagine that you have several tables that stand for activities:
- ProcessActivities
- MedicalActivities
- MaintenanceActivities
- LogisticalActivities
You now realize that all are activities, then, what would you do?
- you create a master table named "activities" and you add a type field for the values: process, medical, maintenance, logistical, or
- you create a super table of activities, and one table for each subclass with only the primary keys, knowing that neither of the subclasses has unique fields
I can think some several pros/cons that get involved in the decision:
First approach:
- CRUD operations in an activity will imply to work in two different tables
- Simplify the E-R diagram
- Lose of integrity constraint
Second approach:
- The two indexes to maintain this relations would be kept in two different places
- Semantic
Are there any potential performance or other consequences in either of those approaches?