2010-09-24 2 views
0

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

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

Мой первоначальный эскиз выглядел следующим образом:

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

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

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

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

Спасибо!

+0

Do Lease types 1,2, 3 .. имеют разные столбцы? Как насчет транзакций - все ли они имеют одинаковые столбцы или структура записи зависит от типа аренды? –

+0

Изображение больше недоступно. Загрузите его еще раз. – ma11hew28

ответ

1

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

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

2

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

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

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