O
oldblindpew
I'm having second thoughts on normalizing my Insurance information. I
thought I had a good theory this morning, but am having problems fleshing it
out. (Previous thread was One-To-One Tables).
I was originally attempting a spreadsheet-like approach, with an Insurance
Requirements table having a record for each Agreement (subcontract) and a
field for each requirement, (60 or 70 fields). Insurance requirements do not
vary greatly from one subcontract to the next, so there would be a lot of
similar stored values.
I was advised that this data was not properly normalized. All possible
insurance requirements should be stored once in a Requirements table, and be
referenced by the Agreements table. This would be a many-to-many
relationship. My brainstorm was that the junction table could have another
field added to it to store the insurance offering by the subcontractor. So
for example if Agreement #39 requires Insurance Requirement #2, and the sub's
Insurance Certificate provides Requirement #2, then the requirement has been
met.
But I ought to have mentioned the type of data involved here. Insurance
Requirements consist of check boxes, currency, and a few numeric fields.
Does it make sense to normalize these kinds of data? Will it save space and
improve performance? Normalizing turns these into a long list of yes-or-no
propositions: required or not required. For the currency and numeric fields
I'll neeed a record for every likely value. This in itself is not too bad,
but the standard for numerics is "meets or exceeds" rather than "exact
match". If we require a $1m General Liability Policy, and the sub furnishes
$2m, these won't match. I thought to solve this by adding another field to
the table for DollarValue, which would enable me to determine whether one
requirement was bigger or smaller than another. This field would remain
unused for yes/no type requirements. I think this would work, but it feels
like I'm going in circles, adding back capabilities that I took away by
normalizing.
Another problem is maintaining the requirements table. Normalizing turns it
into a long rambling one-dimensional list. In order to group and sort the
information, I felt it necessary to add a couple of fields for sort codes.
Finally, and I apologize for the length, I realized that a junction between
Agreement and Requirements does not a Certificate make. There is other
information from the Certificate that I cannot store in the junction table,
so I'll have to rethink. Sorry again for the ramble.
thought I had a good theory this morning, but am having problems fleshing it
out. (Previous thread was One-To-One Tables).
I was originally attempting a spreadsheet-like approach, with an Insurance
Requirements table having a record for each Agreement (subcontract) and a
field for each requirement, (60 or 70 fields). Insurance requirements do not
vary greatly from one subcontract to the next, so there would be a lot of
similar stored values.
I was advised that this data was not properly normalized. All possible
insurance requirements should be stored once in a Requirements table, and be
referenced by the Agreements table. This would be a many-to-many
relationship. My brainstorm was that the junction table could have another
field added to it to store the insurance offering by the subcontractor. So
for example if Agreement #39 requires Insurance Requirement #2, and the sub's
Insurance Certificate provides Requirement #2, then the requirement has been
met.
But I ought to have mentioned the type of data involved here. Insurance
Requirements consist of check boxes, currency, and a few numeric fields.
Does it make sense to normalize these kinds of data? Will it save space and
improve performance? Normalizing turns these into a long list of yes-or-no
propositions: required or not required. For the currency and numeric fields
I'll neeed a record for every likely value. This in itself is not too bad,
but the standard for numerics is "meets or exceeds" rather than "exact
match". If we require a $1m General Liability Policy, and the sub furnishes
$2m, these won't match. I thought to solve this by adding another field to
the table for DollarValue, which would enable me to determine whether one
requirement was bigger or smaller than another. This field would remain
unused for yes/no type requirements. I think this would work, but it feels
like I'm going in circles, adding back capabilities that I took away by
normalizing.
Another problem is maintaining the requirements table. Normalizing turns it
into a long rambling one-dimensional list. In order to group and sort the
information, I felt it necessary to add a couple of fields for sort codes.
Finally, and I apologize for the length, I realized that a junction between
Agreement and Requirements does not a Certificate make. There is other
information from the Certificate that I cannot store in the junction table,
so I'll have to rethink. Sorry again for the ramble.