Hello
It's been a good number of years since I've been involved in databases so take me as a newbie. I'm hoping someone will have the Eureka moment that has failed me so far. I'm sorry that this is the 2nd post to the forum, I'm honestly trying not the be rude by jumping in with a HELPME-type post, but I really need another brain to look at the problem I'm having.
I have a relationship design question regarding a problem that has driven me nuts for the last week. The purpose of the database I'm making it this: I work for an educational establishment with about 100 rooms ("locations") with computers installed, and they all have the potential to have different software requirements. We're trying to track each indivdual software request for each location from the current academic year (1516) to the next (1617). The result of which will eventaully give us a work schedule (to package the software and then another to deploy it), but I haven't got to that point yet, I'm still designing how we're going to get the request data in and handled in logically-related tables rather than one massive messy table. We've tracked this process previously with a number of spreadsheets with no data validation so we're now doing this small DB in hopes the headache will be the packaging work itself and not the keeping track of it all as well.
A request for a piece of software comes in with the following information (we can't change how we're doing this at the moment, this is how the business wants to handle it):
Location: Main Building, Room 3.02a
Software Title: Microsoft Office Word
1516 Version: 2013
Change required: Update (choice of No change, Update, New SW, Remove)
1617 Version: 2016
SME (Subject Matter Expert): Bob Smith
The pertinent tables I've got so far are:
And tables that I'm not sure should exist or not:
My original design had tblRequest M:M SoftwareVersion which was selecting two entries from tblSoftwareVersion in one record of tblRequest which goes against all I remember about database table relationships. However just one JUNCTION table can't solve that M:M because I need two entries per field from tblSoftwareVersion in tblRequest (pretty sure this is now gibberish).
I hope this all makes sense. It feels like I've written War and Peace. I hope someone is still reading at this point and, better still, inclinded to respond and help me out of my misery! I'm going to try to upload a jpg of the relationship diagram, because a picture paints a thousand words (probably literally, in this case).
I've googled a LOT, but can't find an example that mirrors what I'm trying to do. Which probably means the design is ALL wrong.
Please help me (Sorry!)
Jo
It's been a good number of years since I've been involved in databases so take me as a newbie. I'm hoping someone will have the Eureka moment that has failed me so far. I'm sorry that this is the 2nd post to the forum, I'm honestly trying not the be rude by jumping in with a HELPME-type post, but I really need another brain to look at the problem I'm having.
I have a relationship design question regarding a problem that has driven me nuts for the last week. The purpose of the database I'm making it this: I work for an educational establishment with about 100 rooms ("locations") with computers installed, and they all have the potential to have different software requirements. We're trying to track each indivdual software request for each location from the current academic year (1516) to the next (1617). The result of which will eventaully give us a work schedule (to package the software and then another to deploy it), but I haven't got to that point yet, I'm still designing how we're going to get the request data in and handled in logically-related tables rather than one massive messy table. We've tracked this process previously with a number of spreadsheets with no data validation so we're now doing this small DB in hopes the headache will be the packaging work itself and not the keeping track of it all as well.
A request for a piece of software comes in with the following information (we can't change how we're doing this at the moment, this is how the business wants to handle it):
- Location
- Software Title
- 1516 Software Version
- Change Required
- 1617 Software Version
- SME
Location: Main Building, Room 3.02a
Software Title: Microsoft Office Word
1516 Version: 2013
Change required: Update (choice of No change, Update, New SW, Remove)
1617 Version: 2016
SME (Subject Matter Expert): Bob Smith
The pertinent tables I've got so far are:
- tblBuilding (id, abbreviation, fullname)
- tblLocation (id, fidbuilding, roomno, description, #PC, #Mac, etc)
- tblRequest (id, fidlocation, fidsoftware, 1516version, changetype, 1617version, fidsme)
- tblSoftware (id, developer, suite (optional), title)
- tblSoftwareVersion (id, fidsoftware, version, platform (eg: win, win64, win32, mac, linux), licensetype, etc)
And tables that I'm not sure should exist or not:
- tblRequestVersion1516
- tblRequestVersion1617
- tblBuilding 1:M tblLocation
- tblLocation 1:M tblRequest
- tblRequest M:1 tblSoftware
- tblSoftware 1:M tblSoftwareVersion
- tblRequest 1:1 tblRequestVersion1516 1:1 tblSoftwareVersion
- tblRequest 1:1 tblRequestVersion1617 1:1 tblSoftwareVersion
My original design had tblRequest M:M SoftwareVersion which was selecting two entries from tblSoftwareVersion in one record of tblRequest which goes against all I remember about database table relationships. However just one JUNCTION table can't solve that M:M because I need two entries per field from tblSoftwareVersion in tblRequest (pretty sure this is now gibberish).
I hope this all makes sense. It feels like I've written War and Peace. I hope someone is still reading at this point and, better still, inclinded to respond and help me out of my misery! I'm going to try to upload a jpg of the relationship diagram, because a picture paints a thousand words (probably literally, in this case).
I've googled a LOT, but can't find an example that mirrors what I'm trying to do. Which probably means the design is ALL wrong.
Please help me (Sorry!)
Jo