powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как хранить графики погашений
10 сообщений из 10, страница 1 из 1
Как хранить графики погашений
    #35677932
blacksun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. Есть такая вещь в кредитовании как график погашения основного долга ((debt/principal) repayment schedule) и график уплаты процентов ((interest) payment schedule). Также могут быть графика уплаты комиссий.

2. В моем случае все эти графики выгружаются в базу в виде:
Филиал_банка
Номер_Кредитного_Договора
Тип_платежа - по основному долгу/уплата процентов/уплата комиссий и т.д.
Дата
Сумма

3. Ключом в данной структуре (на мой взгляд!) является связка полей:
Филиал_банка + Номер_Кредитного_Договора
Причем ключ этот не уникален.

Пример

Код: plaintext
1.
2.
3.
4.
 Branch	Deal	Type	Date	Amount 
1	17	PRI	15.01.2008	1000
1	17	INT	15.01.2008	10
1	17	PRI	15.02.2008	980
1	17	INT	15.02.2008	9,8

В случае уплаты клиентом денег график пересчитывается. Если клиент платит деньги по графику, то новый рассчитанный график будет совпадать со старым, если клиент досрочно платит, то новый график будет не совпадать со старым.

Новый график приходит полностью (фактическая+плановая часть). График принято делить на фактическую часть (то что уже реально уплачено) и плановую (то что клиент должен будет уплатить).
Хранить нужно все рассчитанные по договору графики. Конечно если графики полностью совпадают, то можно хранить только 1 экземпляр указав, например, период его (экземпляра) действия.

Вопрос. Как правильно хранить графики
1. По записям или блоком (экземпляром).
2. Периодом (дата_с дата_по) или срезом (все графики на дату).

Если был такой опыт - подскажите.

Объемы. Всего около 350 тыс. открытых кредитных договоров
В среднем график погашения содержит около 24 записей.
...
Рейтинг: 0 / 0
Как хранить графики погашений
    #35678207
tdvq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
blacksun1. Есть такая вещь в кредитовании как график погашения основного долга ((debt/principal) repayment schedule) и график уплаты процентов ((interest) payment schedule).
...

3. Ключом в данной структуре (на мой взгляд!) является связка полей:
Филиал_банка + Номер_Кредитного_Договора
Причем ключ этот не уникален.


Вопрос. Как правильно хранить графики
1. По записям или блоком (экземпляром).
2. Периодом (дата_с дата_по) или срезом (все графики на дату).



Не совсем понятны вопросы. Что значит "хранить блоком"?

Ключом лучше сделать ID договора (surrogate key).
Я думаю, надо также добавить информацию о том, оплачена ли каждая конкретная "запись" этого графика. Можно просто добавить информацию о том, сколько уже оплачено (если допускается частичная оплата)

Что-то вроде

Код: plaintext
1.
2.
3.
4.
5.
6.
 
DealId	Type            Date	              Amount      Paid
 
78543    PRI              15.01.2008            1000          0
78543    INT              15.01.2008              10         10
78543    COMISSION        15.02.2008             980        980

Если частичная оплата не допускается, можно обойтись просто булевским флагом (например, "isPaid").
...
Рейтинг: 0 / 0
Как хранить графики погашений
    #35678242
blacksun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хранить блоком, это значит хранить целиком. Все записи по данному договору в днном филиале.
Номер договора уникален только в разрезе филиала.
Ставить оплачен или нет платеж нельзя это нужно будет вычислять. да и дело не в этом.
Если платеж не оплачен, график не меняется, а вот если платеж оплачен ранее чем по графику , то график меняется.
...
Рейтинг: 0 / 0
Как хранить графики погашений
    #35678270
tdvq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
blacksun

1)Хранить блоком, это значит хранить целиком
2) Ставить оплачен или нет платеж нельзя это нужно будет вычислять. да и дело не в этом.
3) Если платеж не оплачен, график не меняется, а вот если платеж оплачен ранее чем по графику , то график меняется.

2) Вы собираетесь вычислять, оплачен платеж или нет, _каждый_ раз, когда это потребуется ? Насчет быстродействия никаких беспокойств нет?

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

PS. Насчет 1) так и не понял вопрос :). Может быть приведете пример, что значит в данном случае "хранить целиком"?
...
Рейтинг: 0 / 0
Как хранить графики погашений
    #35678406
blacksun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне вычислять ничего не нужно. Графики рассчитываются и пересчитываются в другой системе. Мне же только нужно сохранить выгружаемые графики. Но хранить нужно не только последний рассчитанный график, но и всю историю.
Например были такие графики

Графики выгруженные 15.01.2008

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 Branch	Deal	Type	Date	Amount 
1	12	PRI	15.01.2008	500
1	12	INT	15.01.2008	12,5
1	12	PRI	15.02.2008	500
1	12	INT	15.02.2008	12,5
5	1003	PRI	04.01.2008	2000
5	1003	INT	04.01.2008	75
5	1003	PRI	04.02.2008	2000
5	1003	INT	04.02.2008	75
5	1003	PRI	04.03.2008	2000
5	1003	INT	04.03.2008	75


Графики выгруженные 02.02.2008

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 Branch	Deal	Type	Date	Amount 
1	12	PRI	15.01.2008	500
1	12	INT	15.01.2008	12,5
1	12	PRI	15.02.2008	500
1	12	INT	15.02.2008	12,5
5	1003	PRI	04.01.2008	2000
5	1003	INT	04.01.2008	75
5	1003	PRI	02.02.2008	2000
5	1003	INT	02.02.2008	75
5	1003	PRI	02.03.2008	2000
5	1003	INT	02.03.2008	75

См. примеры выше.

2-го февраля клиент договора 1003 погасил свой очередной платеж. Погашение было досрочным. График пересчитался.

Хранить целиком - все записи по первому и новому графику т.е. для результирующий набор будет такой

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 Branch	Deal	Type	Date	Amount	Date_from	Date_to 
1	12	PRI	15.01.2008	500	15.01.2008	
1	12	INT	15.01.2008	12,5	15.01.2008	
1	12	PRI	15.02.2008	500	15.01.2008	
1	12	INT	15.02.2008	12,5	15.01.2008	
5	1003	PRI	04.01.2008	2000	15.01.2008	01.02.2008
5	1003	INT	04.01.2008	75	15.01.2008	01.02.2008
5	1003	PRI	04.02.2008	2000	15.01.2008	01.02.2008
5	1003	INT	04.02.2008	75	15.01.2008	01.02.2008
5	1003	PRI	04.03.2008	2000	15.01.2008	01.02.2008
5	1003	INT	04.03.2008	75	15.01.2008	01.02.2008
5	1003	PRI	04.01.2008	2000	02.02.2008	
5	1003	INT	04.01.2008	75	02.02.2008	
5	1003	PRI	02.02.2008	2000	02.02.2008	
5	1003	INT	02.02.2008	75	02.02.2008	
5	1003	PRI	02.03.2008	2000	02.02.2008	
5	1003	INT	02.03.2008	75	02.02.2008
...
Рейтинг: 0 / 0
Как хранить графики погашений
    #35678423
tdvq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ok, теперь понятно.

IMHO, тогда в текущей таблице хранить только актуальные графики, а "старые" графики выносить в отдельную таблицу (что-то вроде "history").
...
Рейтинг: 0 / 0
Как хранить графики погашений
    #35678451
blacksun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tdvqOk, теперь понятно.

IMHO, тогда в текущей таблице хранить только актуальные графики, а "старые" графики выносить в отдельную таблицу (что-то вроде "history").
Что это даст?
...
Рейтинг: 0 / 0
Как хранить графики погашений
    #35678480
tdvq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В "основной" таблице будут храниться только те данные, которые актуальны на текущую дату.

Какие запросы планируется получать, используя прежние версии графиков? Какую-то аналитику/статистику или что-то еще?
...
Рейтинг: 0 / 0
Как хранить графики погашений
    #35678510
andycat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не вижу смысла хранить все предыдущие графики, например посмотрите на любую пробышленную АБС...

в одной из них есть связи с фактическими операциями гашения, соотвественно все что до даты например досрочного погашения изменить в принципе не возможно (да и смысла не имееет)

соотвественно если клиент пришел платить досрочно, или например наше государство сдвинуло/изменило выходные дни - график пересчитывается от текущей даты...

кстати не забывайте что согласно закону %% за год должны ТОЧНО соответствовать графику, но поскольку в графике например аннуитетного платежа они считаются корректно, а банку выплачивается ежемесячно проценты, то практически всегда на копейку другую факт с планом не сходиться (проверено практикой) - соотвественно функционал красивого (правильного с точки зрения законодательства) пересчета нужен в любом случае и без связки с факт. платежами не обойтись

если по теме - сделал бы так табличку

ID договора
Тип платежей (аннуитет, одинаковыми суммами основной долг, по факту)
Процентная ставка
Дополнительные коммиссии ежемесячные/ежеквартальные
Дата платежа
Сумма гашения основного долга
Сумма гашения процентов
Остаток ссудной задолженности
Сылка на фактическую операцию платежа
...
Рейтинг: 0 / 0
Как хранить графики погашений
    #35679194
blacksun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пардон, сразу нужно было предупредить. У меня не АБС, а скорее наоборот - Хранилище Данных.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как хранить графики погашений
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]