Hello guys,
I need expert advice/guidance with how I should properly normalize my database:
Basically, we have a Job Tracking Database, which main purpose is to track the current phase of a job that we do... Our client is a bank, and they send us a batch of loans that we should analyze for them... for each loan that we analyze, it goes through various phase/stage: (date format)
Entry Completed
OSAR Analyst Completed
QC (Quality Control) Completed -- 'to double check the work
Sent Back to Analyst -- ' if QCer found mistake from analysis
Re-submit for QC -- 'after Analyst made corrections
Signed Off -- 'when we returned the loan to the client
On Hold for Issue --'if we can't complete analysis and need to put on hold for clarification
Currently, the table structure that we have is that there is a date field for each phase above, example: (this does not include all fields on the table, just fields that pertain to loan status)
tblJobTracking
JobTrackingID
ReportingPeriod
InvestorNumber
LoanNumber
DateAssigned
EntryAnalyst -- 'a user who is assigned to enter
EntryAnalystCompleteDate --'date
OSARAnalyst --'another user
OSARAnalystCompleteDate
QCAnalyst --'QCer to check the work of Analyst
ReturnedToAnalyst --'date
ResubmitToQC --'date
QCerCompleteDate --
SignedOff --'highest level of QC to check and submit back to client
SignedOffDate --'date the loan is totally completed
OnHoldforIssue --'Whenever we can't complete loan
I thought that this table structure should be normalized properly, but can't figure out how is the correct way.
I thought of having a table for the status changes? kinda like:
tblStatusChange
StatusID Status
1 Entry Completed
2 Osar Completed
3 QC Completed
4 Sent Back to Analyst
5 Resubmit for QC
6 Signed Off
7 On Hold For Issue
tblLoanStatus
LoanStatusID
JobTrackingID
Analyst -- 'dropdown list of users (Entry Analyst,OSAR Analyst, QC Analyst...)
StatusID
StatusDate
StatusComment
With this kind of table structure, then we could have a minimum of 3 records for each loan(tblLoanStatus)? there could be a possibility to only have one record per loan, just Update the StatusID every time it goes to another phase, but the problem with that is, if a loan has already been signed off, and for some reason, we want to know when was that loan got OSAR Completed, then there's no way to know or query when it got completed, that's why it is safe to have multiple rercords for each loan? But is that the best approach? Doesn't it cause to have too much redundant data?
Please I need advice and guidance on how I should work on these...
Any help is greatly appreciated.
Thank you...
I need expert advice/guidance with how I should properly normalize my database:
Basically, we have a Job Tracking Database, which main purpose is to track the current phase of a job that we do... Our client is a bank, and they send us a batch of loans that we should analyze for them... for each loan that we analyze, it goes through various phase/stage: (date format)
Entry Completed
OSAR Analyst Completed
QC (Quality Control) Completed -- 'to double check the work
Sent Back to Analyst -- ' if QCer found mistake from analysis
Re-submit for QC -- 'after Analyst made corrections
Signed Off -- 'when we returned the loan to the client
On Hold for Issue --'if we can't complete analysis and need to put on hold for clarification
Currently, the table structure that we have is that there is a date field for each phase above, example: (this does not include all fields on the table, just fields that pertain to loan status)
tblJobTracking
JobTrackingID
ReportingPeriod
InvestorNumber
LoanNumber
DateAssigned
EntryAnalyst -- 'a user who is assigned to enter
EntryAnalystCompleteDate --'date
OSARAnalyst --'another user
OSARAnalystCompleteDate
QCAnalyst --'QCer to check the work of Analyst
ReturnedToAnalyst --'date
ResubmitToQC --'date
QCerCompleteDate --
SignedOff --'highest level of QC to check and submit back to client
SignedOffDate --'date the loan is totally completed
OnHoldforIssue --'Whenever we can't complete loan
I thought that this table structure should be normalized properly, but can't figure out how is the correct way.
I thought of having a table for the status changes? kinda like:
tblStatusChange
StatusID Status
1 Entry Completed
2 Osar Completed
3 QC Completed
4 Sent Back to Analyst
5 Resubmit for QC
6 Signed Off
7 On Hold For Issue
tblLoanStatus
LoanStatusID
JobTrackingID
Analyst -- 'dropdown list of users (Entry Analyst,OSAR Analyst, QC Analyst...)
StatusID
StatusDate
StatusComment
With this kind of table structure, then we could have a minimum of 3 records for each loan(tblLoanStatus)? there could be a possibility to only have one record per loan, just Update the StatusID every time it goes to another phase, but the problem with that is, if a loan has already been signed off, and for some reason, we want to know when was that loan got OSAR Completed, then there's no way to know or query when it got completed, that's why it is safe to have multiple rercords for each loan? But is that the best approach? Doesn't it cause to have too much redundant data?
Please I need advice and guidance on how I should work on these...
Any help is greatly appreciated.
Thank you...