Вопрос проектирования банковской базы данных

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

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

Например, клиент может снять деньги с помощью дебетовой карты, перевести деньги с текущего счета в кредит или внести деньги на проверку с помощью чека.

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

1 ответ

Решение

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

Если вы хотите представлять ссуды, то вам, вероятно, понадобятся еще две таблицы: одна таблица содержит атомарные детали всех ссуд (указана дата, счет получателя, общая сумма, номинальная процентная ставка и т. Д.), А другая таблица содержит прогнозируемые выплаты по каждому кредиту.

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

Другие вопросы по тегам