I'm working on a contract tracking database for our Legal section, made up mostly of dates. And I'm still trying to fully comprehend Normalization. (I want to be good at this!! )
The tracking changes a little bit based on the type of contract. (ie they all have to go certain places, but some have extra steps and some may have fewer steps...)
So far, I have a central table, tblContracts, which holds:
ContractID (PK)
ContractName
Type (Foreign Key to tblTypes)
Amount (Foreign Key to tblAmounts)
30 date fields tracking where ALL contracts need to go.
Then I have tblTypes:
TypeID (PK, a number for option grouping in form)
TypeLetter (The letter used in Legal to refer to the type)
Type (Type ie - Computer, Lease, Licenses)
And finally, tblAmounts. The amount also has a bearing on where the contracts go. If it's under $2500, it has a shorter process. (doesn't have to go through the Governor and Council.)
AmountID (PK - numbers for option grouping in form)
Amount (ie Under $2500, Over $2500, Over $5000)
Basically, my questions are:
1) I've heard severalt imes that having huge tables is bad... Do I have too many fields in tblContracts? If I do, where do I put them all?
2) For the fields I have not yet added which are sensitive to the type of contract - how do I add those to the DB? Do I add them to tblContracts and just make that bigger? Or do I somehow make another table which attaches to the type it corresponds somehow? What if there is one stop that two different types of contracts have to make in the process?
3) Is it necessary to have a table for the different amounts for the contracts, or should I make that some kind of combo box with a limited list of stuff? Because, if the amounts were to change... for example, suddenly contracts over $2000 have to go to Governor and Council, that changes things... but changing the data in the table could cause much inaccuracy.
I apologize for my long-winded post. Just trying to be clear. Please ask me a question if I'm confusing. Thanks in advance for any and all help!
--Sara
The tracking changes a little bit based on the type of contract. (ie they all have to go certain places, but some have extra steps and some may have fewer steps...)
So far, I have a central table, tblContracts, which holds:
ContractID (PK)
ContractName
Type (Foreign Key to tblTypes)
Amount (Foreign Key to tblAmounts)
30 date fields tracking where ALL contracts need to go.
Then I have tblTypes:
TypeID (PK, a number for option grouping in form)
TypeLetter (The letter used in Legal to refer to the type)
Type (Type ie - Computer, Lease, Licenses)
And finally, tblAmounts. The amount also has a bearing on where the contracts go. If it's under $2500, it has a shorter process. (doesn't have to go through the Governor and Council.)
AmountID (PK - numbers for option grouping in form)
Amount (ie Under $2500, Over $2500, Over $5000)
Basically, my questions are:
1) I've heard severalt imes that having huge tables is bad... Do I have too many fields in tblContracts? If I do, where do I put them all?
2) For the fields I have not yet added which are sensitive to the type of contract - how do I add those to the DB? Do I add them to tblContracts and just make that bigger? Or do I somehow make another table which attaches to the type it corresponds somehow? What if there is one stop that two different types of contracts have to make in the process?
3) Is it necessary to have a table for the different amounts for the contracts, or should I make that some kind of combo box with a limited list of stuff? Because, if the amounts were to change... for example, suddenly contracts over $2000 have to go to Governor and Council, that changes things... but changing the data in the table could cause much inaccuracy.
I apologize for my long-winded post. Just trying to be clear. Please ask me a question if I'm confusing. Thanks in advance for any and all help!
--Sara