Как спроектировать базу данных для приложения по бюджетированию?
В качестве пилотного проекта собираюсь разрабатывать на Django простое приложение по бюдежтированию: вот есть месячный бюджет, пользователи планируют свои расходы и привязывают их к тому или иному бюджету. Тут one-to-many связь проста и понятна. А вот что делать с фактическими расходами? Куда их вносить? В эту же таблицу, просто устанавливать свойство 'Fact', например, и использовать parent-child relationship? Или все-таки хранить фактические расходы в другой таблице(ах)? Тогда как нужно организовать между ними связи?
Может есть теория какая по этому вопросу? Конкретные решения (особенно, Django-related), конечно, интересуют. Но тут хотелось бы понять именно теорию и best practices как это делается в реальных рабочих приложениях, чтобы заложенная схема данных позволяла в дальнейшем осуществлять план-фактный анализ.
Хорошо! А если вот так. Надо на 100 рублей купить 100 лампочек. Запланировали это дело. А по факту в одном месте купили 40 штук лампочек за 50 рублей, а в другом оставшиеся 60 лампочек за 60 рублей. Соседнего поля маловато будет.
Теория по этому вопросу точно есть. Она называется "финансовое планирование и бюджетирование". А в более узком смысле "теория бухгалтерского учета".
Разработать реально хорошее приложение по бюджетированию возможно только по лучшим практикам финансового менеджмента, а не по лучшим практикам проектирования баз данных и пользовательского интерфейса.