title: Database design for Workflow based system
body: <p>I am designing a database for a sales company having a complex workflow. The flow starts at Sales Officer, then go to Team Lead and finally Manager. Before approving a proposal, manager will send it to the Division Business Analyst. After getting remarks from dba, he may send the proposal back to sales officer for modification in the proposal. The manager may also reject the proposal. If satisfied, manager will forward it to Director, Sales. The tables designed so far as follows:-</p>
  
  <pre><code>Table: ProposalBasicData 
  
  Id, Title, ProposalDate, Scope, Objective
  
  Table: ProposalState
  
  Id, Name
  (Values - Forwarded , Approved ,  Returned  ,  Rejected)
  
  Table: UserType
  
  Id, Name
  (Values - SalesOfficer, TeamLead,  Manager ,  DBA, DirectorSales)
  
  Table: WorkFlow
  
  Id, StartUserType, NextUserType, StateId, IsActive
  
  Table: RequestAction 
  
  Id, ProposalId, WorkFlowId, UserId, ActionDate
  </code></pre>
  
  <p>Please suggest regarding the design.</p>