Best practice design for a multi-level database

T

TishyMouse

Apologies in advance I'm a bit rusty using MS Access...

I am designing a database that has four 'levels' of data -
Areas;Skills;Targets;Resources
Each level has a one to many relationship with the next level down i.e. each
Area can have several Skills defined;each Skill can have several Targets;each
Target can have several Resources.
In an attempt to try to retain data integrity I have created 4 tables each
corresponding to a level. Then I use a lookup field to link to the previous
level
e.g. in table 'Targets' I have two fields - 'Area_Skill' and 'Target'.
'Area_Skill' is a lookup field with row source:
SELECT Skills.Area & "-" & Skills.Skill AS Area_Skill FROM Skills;

At my lowest level table ('Resources') I have again two fields -
'Area_Skill_Target' and 'Resource'.
'Area_Skill_Target' is again a concatenation of the three levels above,
using the lookup expression:
SELECT Targets.Area_Skill & "-" & FORMAT(Targets.Target) AS
Area_Skill_Target FROM Targets;

I'm not sure that this is the best way to design the database. Ideally I'd
like to create a form for users to enter date whereby they select the Area
first, this then presents them with the available Skills. When they select a
Skill they are presented with the available Targets and so on. I'd also like
to create a report with columns 'Area','Skill','Target','Resource'. However I
can't easily join my four tables above as there are no matching fields
between the tables in the lower three levels. Should I be using interim
queries instead?

Hopefully this makes sense. Would appreciate any advice as I don't want to
get the design wrong in the early stage!

Thanks

TM
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top