Основываясь на информации, которую я предоставил ниже, не могли бы вы высказать свое мнение о том, является ли хорошей идеей денормализация отдельных таблиц в одну таблицу, в которой содержатся различные типы контрактов? .. Что такое за / против? .. кто-нибудь пытался сделать это раньше? .. Банковские системы используют CIF (файл информации о клиенте) [master], где клиенты могут иметь разные типы счетов, CD, закладные и т. д. и использовать коды транзакций [типы], но хранят ли они их в одной таблице
У меня есть отдельные таблицы для транзакций по кредитам, покупкам и продажам. Строки из каждой из этих таблиц присоединяются к соответствующему клиенту следующим образом:
customer.pk_id SERIAL = loan.fk_id INTEGER;
= purchase.fk_id INTEGER;
= sale.fk_id INTEGER;
Поскольку в этих таблицах так много общих свойств, которые вращаются вокруг одного и того же товара: заложенного, купленного и проданного, я экспериментировал, объединив их в одну таблицу под названием «Контракты», и добавил следующий столбец:
Contracts.Type char(1) {L=Loan, P=Purchase, S=Sale}
Сценарий:
Клиент сначала закладывает товар, вносит пару процентов, затем решает, что он хочет продать товар ломбарду, который затем размещает товар в инвентаре и в конечном итоге продает его другому покупателю.
Я разработал общую таблицу, где, например:
Contracts.Capital DECIMAL(7,2)
в кредитном договоре он содержит основную сумму залога, в покупке - цену покупки, в продаже - цену продажи.
Является ли этот дизайн хорошей идеей или я должен держать их отдельно?