Hello,
I maintain a database that manages tasks. For the sake of familiarity, I'd like to explain my problem by using the classification of mammals:
http://4.bp.blogspot.com/-ECkkgAaI5eE/UBJuCcZH1WI/AAAAAAAAApU/w-H1Fgc_W-M/s1600/2-classification.gif
If I were to create a database to record information of all living things, I'd start with tblLivingThings, which would contain the only autonumber field in the entire database. Every other child table would have a 1-1 relationship with its master table.
When designing my database, due to lack of experience and info, I used distinct master tables for each task type I were to manage. In retrospect, with the above link in mind, this was like creating tblFelis, tblPanthera, tblCanis and tblUrsus and their child tables, but omitting tblCarnivora, tblMammalia... all the way up to tblLivingThings.
As time passes, the need to store information about upper classification levels arises. I'm sure experienced designers can immediately appreciate the burden of adding a supertype table to an existing database. Many queries, forms and reports have to be rewritten/restructured. The even greater problem is that the supertype tables that have to be added to the database have to "discovered" by myself, in time. There's no ready classification tree like the one above.
What would you recommend to a person in my position? The only advice I can give to myself is creating a tblEverything table, and relate all current master tables to it. And hope that not many intermediate supertypes have to be inserted between tblEverything and the current master tables.
I maintain a database that manages tasks. For the sake of familiarity, I'd like to explain my problem by using the classification of mammals:
http://4.bp.blogspot.com/-ECkkgAaI5eE/UBJuCcZH1WI/AAAAAAAAApU/w-H1Fgc_W-M/s1600/2-classification.gif
If I were to create a database to record information of all living things, I'd start with tblLivingThings, which would contain the only autonumber field in the entire database. Every other child table would have a 1-1 relationship with its master table.
When designing my database, due to lack of experience and info, I used distinct master tables for each task type I were to manage. In retrospect, with the above link in mind, this was like creating tblFelis, tblPanthera, tblCanis and tblUrsus and their child tables, but omitting tblCarnivora, tblMammalia... all the way up to tblLivingThings.
As time passes, the need to store information about upper classification levels arises. I'm sure experienced designers can immediately appreciate the burden of adding a supertype table to an existing database. Many queries, forms and reports have to be rewritten/restructured. The even greater problem is that the supertype tables that have to be added to the database have to "discovered" by myself, in time. There's no ready classification tree like the one above.
What would you recommend to a person in my position? The only advice I can give to myself is creating a tblEverything table, and relate all current master tables to it. And hope that not many intermediate supertypes have to be inserted between tblEverything and the current master tables.