We're creating a database for a rural development project in the Philippines. The database tracks the accreditations of our medical facilities and in turn determines what equipment and quantities they must maintain for their accreditations. We have a functioning structure now, but we're concerned that it might not be normalized properly because of the way were using checkboxes to track accreditations. We've spent the past few days researching normalization on the Web, but we're still not certain if changing our structure is necessary. Any advice would be a big help.
We currently have three tables for the system.
tblFacilities: stores facility information and accreditations. NOTE: facilities can have a mix of accreditation
facilityID (PK)
facilityName
facilityZone
facilityType
projectedPopulation
Primary (this is an accreditation indicator, controlled by a checkbox)
Secondary (accreditation indicator, controlled by a checkbox)
Tertiary (accreditation indicator, controlled by a checkbox)
tblEquipAttributes: master equipment list
equipID (PK)
equipName
equipReqUnits
equipPrimary (checkbox, if the equipment is for Primary accreditation)
equipSecondary (checkbox, if the equipment is for Secondary accreditation)
equipTertiary (checkbox, if the equipment is for Tertiary accreditation)
tblEquipInventory: stores all physical equipment at the facilities
ID (autonumber, PK)
facilityID (FK)
equipID (FK)
equipFuncUnits (functional units)
equipAcqDate (acquisition date)
Our concern is the checkbox scheme. Since the accreditations are rather static (i.e. new accreditation types are rare, although facilities might assume different accreditations in the future), we used that instead of a lookup table initially. However, the checkboxes have made query writing a bit more tricky than we think it should be. It works, but it just doesn't feel normalized properly.
Would it be more appropriate to pull the accreditation indicators out of tblFacilities and store them in something like this?
tblFacilityAccreds:
facilityID (FK)
accreditationID (lookup)
accreditationName (lookup)
The table would grow vertically with several entries for facilities with multiple accreditations.
We currently have three tables for the system.
tblFacilities: stores facility information and accreditations. NOTE: facilities can have a mix of accreditation
facilityID (PK)
facilityName
facilityZone
facilityType
projectedPopulation
Primary (this is an accreditation indicator, controlled by a checkbox)
Secondary (accreditation indicator, controlled by a checkbox)
Tertiary (accreditation indicator, controlled by a checkbox)
tblEquipAttributes: master equipment list
equipID (PK)
equipName
equipReqUnits
equipPrimary (checkbox, if the equipment is for Primary accreditation)
equipSecondary (checkbox, if the equipment is for Secondary accreditation)
equipTertiary (checkbox, if the equipment is for Tertiary accreditation)
tblEquipInventory: stores all physical equipment at the facilities
ID (autonumber, PK)
facilityID (FK)
equipID (FK)
equipFuncUnits (functional units)
equipAcqDate (acquisition date)
Our concern is the checkbox scheme. Since the accreditations are rather static (i.e. new accreditation types are rare, although facilities might assume different accreditations in the future), we used that instead of a lookup table initially. However, the checkboxes have made query writing a bit more tricky than we think it should be. It works, but it just doesn't feel normalized properly.
Would it be more appropriate to pull the accreditation indicators out of tblFacilities and store them in something like this?
tblFacilityAccreds:
facilityID (FK)
accreditationID (lookup)
accreditationName (lookup)
The table would grow vertically with several entries for facilities with multiple accreditations.