I need your help again.
As some of you may know, I'm designing an inventory DB for keeping track of all components, users and workstations in my organization. Since the previous inventory (half access, half excel) was organized on a 'table per component type' basis, I kept the idea and came up with a relational DB design that covers all our requirements. It is now fully functional and running but as Ajax stated in one of my threads, having a table for each component type makes it harder to add new component types to the DB since it involves the creation of a new table and the alteration of quite some lines of VB code. So, even though it's not likely we're adding more component types in the near future, I'm working on an improved version keeping all components in the same table, and all the models for whatever component type in the same 'models' table as well.
Thing is, I'm having trouble with a particular field of the 'Components' table. This field is supposed to link the component to where it's installed. Unfortunately, that might be a location in general (table Locations), a workstation (table Workstations, linked to table Locations) or another component (namely HDDs, which are supposed to be linked to the computer they are installed on, which are on the 'Components' table too). So i though of having three separate fields on the 'Components' table and linking each to a table, filling only the appropriate one depending of the component type. But to avoid having blanks, I thought of having three separate tables ('components_Computers', 'components_Workstations' and 'components_Locations') each has a 1-1 relation to the PK of the components table and a 1-many relation to the PK of the other table, but it's giving me some headaches to update an independent combobox's source on the 'Components' form and I'm not sure this is the correct design anyway.
What would be the best way to approach this?