Я чувствую, что наткнулся на стену, пытаясь структурировать то, что, как я думал, будет простой схемой базы данных для моделирования основных финансовых транзакций. Я надеюсь, что некоторые из вас, у кого больше опыта, смогут взвесить меня и указать мне правильное направление.
В моем приложении есть четыре совершенно разных типа аренды, которые могут приобрести клиенты. Таким образом, каждый тип аренды имеет свою собственную таблицу, и для сохранения ссылочной целостности каждая таблица аренды имеет свою собственную таблицу транзакций.
Мой первоначальный набросок выглядел так:
Во-первых, я использовал ссылку FK на типы функций, чтобы избежать использования целых чисел со знаком. Нет смысла иметь отрицательный платеж, поэтому я решил, что будет хорошо, если каждая транзакция будет иметь либо дебетовую, либо кредитную ссылку. Имеет ли это смысл?
Еще одна вещь, которая беспокоила меня, это то, что все транзакции не кажутся равными. То есть, я чувствую, что транзакции для этого приложения, возможно, должны быть сгруппированы в отдельные таблицы.
Должны ли такие операции, как сборы с фиксированной ставкой, сборы с переменной ставкой, платежи, проценты и пустоты, помещаться в одну и ту же таблицу? Мне это кажется запутанным, но я уже застрял с таблицей транзакций для каждого типа аренды, поэтому разделение этих таблиц еще больше не очень привлекательно.
Почти все типы транзакций, кроме платежей, будут создаваться программно, поэтому я могу иметь ссылки в поле «Примечания», которые указывают, на какой платеж ссылается возвращенный чек или недействительная транзакция. Это достаточно хорошо, или я думаю об этом все неправильно?
Спасибо!