gunslingor
Registered User.
- Local time
- Yesterday, 18:05
- Joined
- Jan 13, 2009
- Messages
- 50
Ok, I have one main table called cyber assets with fields like OS, MFR, Model, device type, etc, etc... I have a bunch of lookup tables for selecting the values associated with some fields, and I have a few other tables for multivalue things like multiple IP addresses associated with the same cyber asset.
Some of these fields go into making a UNID (unique identifier) that will be placed on the field device for identification and tracking.
The UNID uses these fields in this format:
[company]-[department]-[site]-[device type]-[cabinet].[row]
if it is not in a cabinet, the device UNID will be like this:
[company]-[department]-[site]-[device type]-[identifier]
Now, these UNIDs are intended to uniquely identify a device and provide relevant data when reading them; they must be unique and must be the primary form of device identification. Therefore it follows naturally that the UNID should be the primary key... that way they are gauranteed to be unique and are guaranteed to be the primary way to identify devices.
The problem is obvious to those experienced, this violates normalization and would be a pain to program around.
I want to start a discussion regarding options. I've identfied a few, but all seemlike poor solutions to me:
1. use a calculated field: not reliable according to the interwebs; will the UNID autoupdate if I change one of the fields in either a form or the actual table? Since this calculated field would be my primary key, would child tables be updated or orphaned when the UNID automatically changes?
2. use a query to calculate the UNID based on the cyber assets table, then store this back in the table: don't think that'll update as desired.
What can I do =(?
Some of these fields go into making a UNID (unique identifier) that will be placed on the field device for identification and tracking.
The UNID uses these fields in this format:
[company]-[department]-[site]-[device type]-[cabinet].[row]
if it is not in a cabinet, the device UNID will be like this:
[company]-[department]-[site]-[device type]-[identifier]
Now, these UNIDs are intended to uniquely identify a device and provide relevant data when reading them; they must be unique and must be the primary form of device identification. Therefore it follows naturally that the UNID should be the primary key... that way they are gauranteed to be unique and are guaranteed to be the primary way to identify devices.
The problem is obvious to those experienced, this violates normalization and would be a pain to program around.
I want to start a discussion regarding options. I've identfied a few, but all seemlike poor solutions to me:
1. use a calculated field: not reliable according to the interwebs; will the UNID autoupdate if I change one of the fields in either a form or the actual table? Since this calculated field would be my primary key, would child tables be updated or orphaned when the UNID automatically changes?
2. use a query to calculate the UNID based on the cyber assets table, then store this back in the table: don't think that'll update as desired.
What can I do =(?
Last edited: