title: Programmatically managing a 'balance' of time (sick/vacation)
body: <p>I'm using Python/Django, but this is more about the "data model" and how I interact with the information - I really just want to know if I'm crazy here. </p>
  
  <p>I'm working on a small app at my company (~55 employees) that will keep track of available Vacation/Sick time. Part of the purpose is to integrate "self-service" into our intranet, so that employees can submit "Time Off Requests" electronically, instead of filling out and handing in paper to HR. </p>
  
  <p>Obviously, this app needs to keep a running balance per employee, and will be validating that the employee has enough Vacation remaining for whatever they're requesting. </p>
  
  <p>Like with financial/accounting software, I know that I shouldn't necessarily be storing float values, or just keeping a single running balance. </p>
  
  <p>My idea is to use a database table structure like the following to store time "credits" and "debits": </p>
  
  <p><code>Employee | Year | Credit/Debit | Amount | Timestamp</code></p>
  
  <p>'Year' would be the year to which the credit/debit belong, because Vacation and Sick time are handled on a yearly basis, <em>not</em> on a running balance per employee. </p>
  
  <p>To determine the employees available Vacation/Sick time, I would get the 'transactions' for the employee for the given year, and find the balance. </p>
  
  <p>I know I'm leaving out lots of information, but I was wondering: <strong>Does this seem like a reasonable way to go about this,</strong> being as that it needs to be very accurate, <strong>or</strong> am I completely over-complicating this? </p>