Я хочу создать приложение, которое позволяет пользователям распределять деньги, которые у них уже есть, по различным категориям в течение данного месяца.
Я уже смоделировал и прототипировал обработку осязаемых данных; например Банковские счета, транзакции, переводы. Проблема, с которой я сталкиваюсь, заключается в том, чтобы связать эти «реальные» данные (то, что находится в вашем банке, или в вашем кармане, или в вашей банковской выписке) с этими фальшивыми понятиями бюджетов (или, как я люблю их рассматривать, конвертов). ).
Вот краткий список требований, которые я составил:
- Пользователь может управлять своими финансовыми счетами
- Пользователь может управлять своими финансовыми операциями
- Пользователь может связать каждую транзакцию с финансовым счетом
- Пользователь может переводить деньги между Аккаунтами
- Пользователь может назначить доступные деньги на определенную категорию бюджета в месяц
- Пользователь может изменять существующие категории ежемесячного бюджета (уменьшать или увеличивать)
- Пользователь может просмотреть оставшуюся сумму денег для данной категории ежемесячного бюджета
- Пользователь может просматривать доступную для бюджета сумму денег (может быть отрицательной)
- Деньги, оставшиеся от категории бюджета, могут быть перенесены на следующий месяц
- Пользователь может просматривать общие данные своего финансового счета (бюджет не должен влиять на него)
- Пользователь может создавать категории бюджета как цели, которые в конечном итоге могут быть закрыты (например, экономия на новой машине)
- (Возможно, некоторые другие варианты использования, которые я забываю)
Варианты использования, выделенные жирным шрифтом, - это те, с которыми я борюсь.
Я играл с идеей иметь объект «Ежемесячный бюджет», с которым могла бы быть связана каждая транзакция; но это казалось слишком сложным для реализации в базе данных, потому что мне пришлось бы реализовать диапазон дат вместо простой даты.
Я поиграл с идеей рассматривать эти категории ежемесячного бюджета как счета, и можно было бы просто выполнять переводы в них; но тогда у пользователя не будет возможности перепроверить свою банковскую выписку с данными в системе.
Я играл с идеей «фальшивых денег», которые можно было бы использовать в бюджете, тем самым разделяя «реальные деньги» и «бюджетные деньги» - но не мог осмыслить это логически.
Я немного не понимаю, как найти четкий и краткий способ реализации этого, в частности, используя реляционную базу данных для хранения. Если у кого-то есть предложения или идеи, я был бы очень признателен.