I recently took over a database and I'm not sure how to interpret the design. Please see the picture below for a glimpse at two tables.
These tables are linked to other tables such as SiteOffice, Department, HardwareManuf, HardwareCategory, HardwareItem
I could think of easier ways to create tables that would make the design easier to follow and update. I'm wondering what it is I'm missing. For example, I'm wondering why the 'strvalue' field is used to hold more than just the service tag of a workstation. It also can be used to hold an asset 'group' number (i.e. workstation, keyboard, monitor) ... and it can be used to hold an asset barcode. Any of these three could be referenced by the 'strvalue' field if the following statement were used:
SELECT F.uid As Group_ID, AF.StrValue, F.FieldType, F.Label
FROM AssetFields AF INNER JOIN HWFields F ON AF.FieldUID = F.UID
WHERE AF.AssetUID = 'XYZ123'
AND F.Label = 'Group'
The above query could also end with either of these two:
1) AND F.Label = 'Barcode'
2) AND F.Label = 'Servicetag'
Thus, since the 'strvalue' field accepts nulls as seen in the diagram below, isn't it safe to assume the only catch or filter on unique entry would be the user application that accepts new assets?
Again, what am I missing? Thanks!