Как мне смоделировать эти простые финансовые операции?

Я чувствую, что наткнулся на стену, пытаясь структурировать то, что, как я думал, будет простой схемой базы данных для моделирования основных финансовых транзакций. Я надеюсь, что некоторые из вас, у кого больше опыта, смогут взвесить меня и указать мне правильное направление.

В моем приложении есть четыре совершенно разных типа аренды, которые могут приобрести клиенты. Таким образом, каждый тип аренды имеет свою собственную таблицу, и для сохранения ссылочной целостности каждая таблица аренды имеет свою собственную таблицу транзакций.

Мой первоначальный набросок выглядел так:

Во-первых, я использовал ссылку FK на типы функций, чтобы избежать использования целых чисел со знаком. Нет смысла иметь отрицательный платеж, поэтому я решил, что будет хорошо, если каждая транзакция будет иметь либо дебетовую, либо кредитную ссылку. Имеет ли это смысл?

Еще одна вещь, которая беспокоила меня, это то, что все транзакции не кажутся равными. То есть, я чувствую, что транзакции для этого приложения, возможно, должны быть сгруппированы в отдельные таблицы.

Должны ли такие операции, как сборы с фиксированной ставкой, сборы с переменной ставкой, платежи, проценты и пустоты, помещаться в одну и ту же таблицу? Мне это кажется запутанным, но я уже застрял с таблицей транзакций для каждого типа аренды, поэтому разделение этих таблиц еще больше не очень привлекательно.

Почти все типы транзакций, кроме платежей, будут создаваться программно, поэтому я могу иметь ссылки в поле «Примечания», которые указывают, на какой платеж ссылается возвращенный чек или недействительная транзакция. Это достаточно хорошо, или я думаю об этом все неправильно?

Спасибо!


person Jeff Camera    schedule 24.09.2010    source источник
comment
Имеют ли типы аренды 1,2, 3... разные столбцы? Как насчет транзакций — все ли они имеют одинаковые столбцы или структура записи зависит от типа аренды?   -  person Damir Sudarevic    schedule 24.09.2010
comment
Изображение больше недоступно. Пожалуйста, загрузите его снова.   -  person ma11hew28    schedule 01.01.2012


Ответы (2)


Что не так с отрицательными суммами?

Хорошо иметь запись о типах транзакций, но если вы настаиваете на том, чтобы все суммы были положительными, вы столкнетесь с целым рядом проблем при попытке подсчитать итоги. Просто сохраняйте платежи и другие типы транзакций с поступлением денег как положительные суммы, а возвраты и т. д. — как отрицательные суммы. Это также позволяет вам делать такие вещи, как запись возвратного платежа из-за ошибки (например, списание средств с неправильного счета на карте клиента) как отрицательный платеж, который отличается от возврата.

person Marcelo Cantos    schedule 24.09.2010

Имеют ли разные виды аренды разные характеристики? Если нет, то разделение их на отдельные таблицы ничего не даст и усложнит как базу данных, так и запрограммированное приложение.

Наличие единой таблицы транзакций для всех типов аренды почти наверняка избавит вас от проблем в дальнейшем.

Я предлагаю вам взглянуть на некоторые решения, представленные в Ответы по базе данных. Там много финансовых баз данных. Вы можете получить несколько подсказок.

person Walter Mitty    schedule 24.09.2010