|
|
|
Проектирование БД для банка
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. В целях саморазвития хочу сделать проект, симулирующий работу банка. Для начала надо определить структур БД. Понимаю, что предметная область очень большая, поэтому будут некоторые упрощения. Для начала рассмотрим понятие Банк более детально 1. Физическое устройство банка (персонал, услуги, подразделения). 2. Клиенты (физ. лица, юр. лица). 3. Внутренние операции (счета, пополнение/вывод, перерасчет(кредит,или накопительный счет), поручения, архив, статистика). 4. Внешняя политика банка (инвестиции, займы). Возможно имело бы смысл раскидать п. 3 по п. 1 и 2.,все-такие физ. лица и юридические лица совершают разные операции, но мне так кажется, что логически там большой разницы нету. Хотелось бы, чтобы вы заценили. Если все норм, пойду расписывать каждый пункт более подробно, определять сушности и зависимости. П. С. зачеркнутым я пометил то, что очень вероятно не стоит пока делать (а может и вообще не стоит) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 15:07 |
|
||
|
Проектирование БД для банка
|
|||
|---|---|---|---|
|
#18+
Не взлетит. Чтобы взлетело, упростить надо столько, что ничего не останется. Количество видов финансовых инструментов, видов сделок и сложность их внутренней механики такова, что новичку с нуля это не по плечу. Попробуйте выбрать только один пункт/направление автоматизации и проработать его хоть насколько-то добросовестно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 16:27 |
|
||
|
Проектирование БД для банка
|
|||
|---|---|---|---|
|
#18+
Geronemo... очень вероятно не стоит пока делать (а может и вообще не стоит) Без знания предметной области Вам вообще нет смысла суетиться. Все уже "украдено" до Вас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 16:38 |
|
||
|
Проектирование БД для банка
|
|||
|---|---|---|---|
|
#18+
авторБез знания предметной области Вам вообще нет смысла суетиться Для саморазвития очень даже есть смысл, особенно если имеется доступ к работающей банковской АБС (поглядеть, как другие делают) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 16:41 |
|
||
|
Проектирование БД для банка
|
|||
|---|---|---|---|
|
#18+
П-ЛПопробуйте выбрать только один пункт/направление автоматизации и проработать его хоть насколько-то добросовестно. В принципе так и планирую поступить с п. 3 Вот так я разрисовал п. 1 # Employees Эта часть у меня будет скорее для красоты и для количества таблиц и понимания того,что я полностью описал предметную область Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. # Accounts, Services Услуги банка. Тут мне чего-то в голову не приходит, кроме типов Аккаунтов. Если текущий то %-ная ставка 0, а если кредитный или накопительный, то будет отличаться знак. Возможно стоит еще создать таблицу документов, требуемых для открытия того или иного счета Код: sql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 16:56 |
|
||
|
Проектирование БД для банка
|
|||
|---|---|---|---|
|
#18+
Ваша попытка кадрового учета очень слабая. Есть отстоявшийся минимальный набор таблиц для штатного расписания, назначений, переводов и увольнений. Счета - тоже ноль. Без знания предметной области будет грустно. Прочитайте нормативно-обязательный план счетов банка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 17:11 |
|
||
|
Проектирование БД для банка
|
|||
|---|---|---|---|
|
#18+
На всякий случай поясню цель этого проекта. Их 3 1. Спроектировать относительно большую БД (для непрофессиоанала) с кучей таблиц и зависимостями. Тут моя задача это попытаться разобрать по косточкам некую сложную предметную область. Разумеется с приближениями и упрощениями, т. к. я выбрал уж больно сложную тему. 2-3. Это уже относится к Java - Освоить пару фреймворков, сделать эмулятор/рандомизатор событий пришел/ушел клиент, открыл/закрыл счет, создал поручение (единоразовое/регулярное), перерасход средств, банкротство компаний, контроль за достаточностью капитала и т. д. В соответствии с этим, постоянный перерасчет состояний счетов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 17:12 |
|
||
|
Проектирование БД для банка
|
|||
|---|---|---|---|
|
#18+
П-ЛВаша попытка кадрового учета очень слабая. Есть отстоявшийся минимальный набор таблиц для штатного расписания, назначений, переводов и увольнений. Ну париться на счет принятий на работу/увольнений, расписаний, болезней, отпусков и т. д. я не буду. Есть какая-то грань, которую я должен провести, чтобы не потонуть. Ну и в конце концов мне никто не мешает потом систему апгрейднуть в соответствии с принципами SCRUM Счета - тоже ноль. Без знания предметной области будет грустно. Прочитайте нормативно-обязательный план счетов банка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 17:17 |
|
||
|
Проектирование БД для банка
|
|||
|---|---|---|---|
|
#18+
авторЕсть отстоявшийся минимальный набор таблиц для штатного расписания, назначений, переводов и увольнений. Его где-то можно увидеть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 17:21 |
|
||
|
Проектирование БД для банка
|
|||
|---|---|---|---|
|
#18+
П-Л Прочитайте нормативно-обязательный план счетов банка. А где это можно прочитать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 17:38 |
|
||
|
Проектирование БД для банка
|
|||
|---|---|---|---|
|
#18+
авторА где это можно прочитать ? про план счетов банка? Это нормативный документ страны. Чаще всего издается Нац.Банком и называется "план счетов бухгалтерского учета банков ....."(ну или подобным образом) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 17:46 |
|
||
|
Проектирование БД для банка
|
|||
|---|---|---|---|
|
#18+
При всем уважении, предметная область для саморазвития очень плохая. АБС одному даже в первом приближении за разумные сроки не сделать. Да и неразумные :-) Управление клиентскими данными, как раз я, скажем так, специализируюсь по ним. Это одна задача ОШС - это вторая Отчетность в ЦБ - это третья Сложная процедура работы с кредитами - там вариаций не счесть Сложная процедура работы со счетами - там вариаций не счесть интеграция с карточными системами, банкоматами, разного рода прикладными системами с одной стороны, и АБС с другой. В общем, все очень и очень сложно для одного человека, который при этом и в предметке не понимает. PS Слышал давно про какую то АБС (на заре становления ИТ в постперестроечной России), которая была написана на бат-никах :-) Наверное, это из категории приснопамятного антивируса Попова. Так что есть шанс повторить подвиг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 18:26 |
|
||
|
Проектирование БД для банка
|
|||
|---|---|---|---|
|
#18+
авторНу париться на счет принятий на работу/увольнений, расписаний, болезней, отпусков и т. д. я не буду. Есть какая-то грань, которую я должен провести, чтобы не потонуть. Я же говорю - вы замахнулись на масштаб, из которого вам придется выкинуть слишком много, т.е. то, что составляет суть задачи. Кадры: перечень физлиц справочник должностей структура организации по подразделениям штатное расписание в разрезе структуры и должностей приказы о назначении/переводе/увольнении физлиц в/из слоты штатного расписания Это минимум, без которого подсистема не может назваться кадрами. За скобками оставлены отпуска/больничные, табель, зарплаты, налоги на з/п ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 19:03 |
|
||
|
Проектирование БД для банка
|
|||
|---|---|---|---|
|
#18+
П-ЛавторНу париться на счет принятий на работу/увольнений, расписаний, болезней, отпусков и т. д. я не буду. Есть какая-то грань, которую я должен провести, чтобы не потонуть. Я же говорю - вы замахнулись на масштаб, из которого вам придется выкинуть слишком много, т.е. то, что составляет суть задачи. Кадры: перечень физлиц справочник должностей структура организации по подразделениям штатное расписание в разрезе структуры и должностей приказы о назначении/переводе/увольнении физлиц в/из слоты штатного расписания Это минимум, без которого подсистема не может назваться кадрами. За скобками оставлены отпуска/больничные, табель, зарплаты, налоги на з/п ... Справочник должностей есть. До физ. лиц-клиентов еще не дошел. Всякие там подразделения, расписания и движения кадров мне не нужны, ТЗ этого не подразумевает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 19:22 |
|
||
|
Проектирование БД для банка
|
|||
|---|---|---|---|
|
#18+
GeronemoДо физ. лиц-клиентов еще не дошел Как бы еще и ЮЛ есть :-) И ИП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 19:25 |
|
||
|
Проектирование БД для банка
|
|||
|---|---|---|---|
|
#18+
Arm79GeronemoДо физ. лиц-клиентов еще не дошел Как бы еще и ЮЛ есть :-) И ИП. Вы 1-е сообщение темы читали ? Мне бы не помешала помощь вот в каком вопросе - стандартные услуги банка. Я не хочу залезать в дебри и описывать предметную область полностью - всякие там ячейки хранения и х. з что еще. Пока что в рамках п. 1, 1-го сообщения темы я придумал только 1 таблицу - AccountTypes, сюда можно запихать сколько угодно типов аккаунтов (кредит на авто, на квартиру, потребительский, текущий счет, вклад на 1 год и т. д.). Возможно стоит придумать еще несколько типов услуг, но чтобы они занимали какую-либо существенную долю в обороте банка (комиссии при обналичивании ? обслуживание банковский карт, или эти деньги достаются платежным системам). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 19:41 |
|
||
|
Проектирование БД для банка
|
|||
|---|---|---|---|
|
#18+
Geronemo, Разумеется читал. Я как бы вам намекаю, что у ЮЛ и у ФЛ разный набор атрибутов, и разная логика работы. В ЮЛ есть еще холдинги, группы компаний и так далее. Geronemoя придумал только 1 таблицу - AccountTypes, сюда можно запихать сколько угодно типов аккаунтов Это что, такой своеобразный продуктовый профиль? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 19:49 |
|
||
|
Проектирование БД для банка
|
|||
|---|---|---|---|
|
#18+
GeronemoНа всякий случай поясню цель этого проекта. Их 3 1. Спроектировать относительно большую БД (для непрофессиоанала) с кучей таблиц и зависимостями. Тут моя задача это попытаться разобрать по косточкам некую сложную предметную область. Разумеется с приближениями и упрощениями, т. к. я выбрал уж больно сложную тему. 2-3. Это уже относится к Java - Освоить пару фреймворков, сделать эмулятор/рандомизатор событий пришел/ушел клиент, открыл/закрыл счет, создал поручение (единоразовое/регулярное), перерасход средств, банкротство компаний, контроль за достаточностью капитала и т. д. В соответствии с этим, постоянный перерасчет состояний счетов. Может бать такой вариант стоит рассмотреть: Если на Java отнесено 2 цели (№2 и №3), то с Java и начинай. Создавай сервер приложения а БД "упакуй" в EAV Если начнёт взлетать - тогда и допилишь (нормализуешь) БД А так получается задача очень широкая, и времени потребует много ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 20:20 |
|
||
|
Проектирование БД для банка
|
|||
|---|---|---|---|
|
#18+
авторПока что в рамках п. 1, 1-го сообщения темы я придумал только 1 таблицу - AccountTypes, сюда можно запихать сколько угодно типов аккаунтов (кредит на авто, на квартиру, потребительский, текущий счет, вклад на 1 год и т. д.). Это Вы крепко попутались. В банковской практике бывают активные/пассивные/активно-пассивные счета (внебаланс пока не трогаем). То, что придумали Вы, это банковские продукты (в первом приближении кредиты и депозиты всех размеров, сортов и цветов). Для того, чтобы было интереснее, возьмите учебник по банковской деятельности Вашей страны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 20:29 |
|
||
|
Проектирование БД для банка
|
|||
|---|---|---|---|
|
#18+
ШайтанGeronemoНа всякий случай поясню цель этого проекта. Их 3 1. Спроектировать относительно большую БД (для непрофессиоанала) с кучей таблиц и зависимостями. Тут моя задача это попытаться разобрать по косточкам некую сложную предметную область. Разумеется с приближениями и упрощениями, т. к. я выбрал уж больно сложную тему. 2-3. Это уже относится к Java - Освоить пару фреймворков, сделать эмулятор/рандомизатор событий пришел/ушел клиент, открыл/закрыл счет, создал поручение (единоразовое/регулярное), перерасход средств, банкротство компаний, контроль за достаточностью капитала и т. д. В соответствии с этим, постоянный перерасчет состояний счетов. Может бать такой вариант стоит рассмотреть: Если на Java отнесено 2 цели (№2 и №3), то с Java и начинай. Создавай сервер приложения а БД "упакуй" в EAV Если начнёт взлетать - тогда и допилишь (нормализуешь) БД А так получается задача очень широкая, и времени потребует много Мне чтобы с Java начать нужна какая-то БД, чтобы тужа забить какие-то данные (конкретных клиентов, счета, услови их обслуживания). А потом сделаю эмулятор, который будет заниматься разного рода финансовыми операциями от случайно выбранного клиента. Мне нужна некая приближенная модель + логика обработки данных. Я там расписал Понятие сотрудник на 6 таблиц. Я вообще мог обойтись 1-й таблицей - ФИО, логин и пароль. Все. Этого приближения уже вполне достаточно было бы. Но я сделал целых 6 таблиц, а мне тут советуют всякие подразделения, расписание, приказы о переводе/повышении и т. д. Я вероятно сам виноват, что не описал свою цель более конкретно, потому и ввел некоторых людей в заблуждение. Приношу свои извинения. Суть проекта и требования к нему следующие. 1. Это должен быть достаточно большой с т. з. количества сущностей проект. Я не проектировщик БД, это не моя прямая специальность. Но хотелось бы иметь в активе тот факт, что я на довольно сложной предметной области смог вычленить самое главное и при этом структура все равно оставалась бы близкой к реальности, довольно сложной и большой для непрофессионала и некоммерческого продукта (таблиц 30, например). 2. БОльшая часть проекта, это не БД, а Java, бизнес-логика. На самом деле я нечто подобное написал в 1-м сообщении GeronemoВ целях саморазвития хочу сделать проект, симулирующий работу банка. Для начала надо определить структуру БД. Понимаю, что предметная область очень большая, поэтому будут некоторые упрощения. Как видите, структура БД для меня это только начало проекта и если я создал тему здесь, а не в подфоруме java, это только потому что я для начала хочу понять от чего мне отталкиваться, от каких данных. Мне не нужна детализация, по которой были бы подразделения, отделения (время их работы и пр. атрибуты), банкоматы, штатные расписания, потому что я этими данными нигде оперировать не буду. Они будут статичны, либо таблицы будут пустыми. Что я вобью вручную, то и будет. А логически, если человек берет кредит, то разницы большой нету, в каком именно отделении он это делает. Только, если ради ведения статистики (в целях повышения эффективности). Но опять же, это очень сильно усложняет задачу. Возможно я к этому вернусь позже, на итерации номер 3 (я тут писал чуть выше про SCRUM). 3. Для меня важно было, чтобы в рамках проекта я оперировал бы каким-то одним ресурсом (в этом случае - деньги), чтобы сделать систему максимально нагруженной и при этом суметь справиться со всякими коллизиями (вопросы синхронизации потоков, защиты данных и т. д.). Вот почему это именно банк. У меня есть пара проектов значительно более простых и там такого рода задачи решаются очень просто. Для меня этого мало. 4. По поводу глубины детализации. Возможно все же стоит какую-то часть предметной области изучить досконально. И, в принципе, Персонал для этого вполне подходит, т. к. таблицы будут все равно пусты и если что-то не так, то помешать бизнес-логике приложения это не сможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 22:07 |
|
||
|
Проектирование БД для банка
|
|||
|---|---|---|---|
|
#18+
Кстати, у меня возник наиинтереснейший вопрос - с какого счета банк платит зарплату, аренду и пр. расходы. У банка есть свой собственный счет в своем банке ? П. С. как видите, углубляясь в предметную область у меня появляются вопросы и это будет отражено в модели. Потому что я хочу отслеживать финансовое состояние банка онлайн, для этого мне нужны и зарплаты и постоянные издержки и налоги и % невозврата и возможные банкротства юр. лиц и т. д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 22:14 |
|
||
|
Проектирование БД для банка
|
|||
|---|---|---|---|
|
#18+
xenix, можно посмотреть модели здесь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 22:40 |
|
||
|
Проектирование БД для банка
|
|||
|---|---|---|---|
|
#18+
Продолжение п. 1 # The internal structure of the bank # List of All possible Accounts (current, credit, etc...) CREATE TABLE AccountTypes(Id bigint AUTO_INCREMENT, AccountTypeName varchar(50) NOT NULL, basePercentage decimal NOT NULL, currency int NOT NULL, PRIMARY KEY(Id)); # List of All possible Services (comissions for transfers, payments for sms-informer, etc...) CREATE TABLE ServicesTypes(Id bigint AUTO_INCREMENT, ServicesTypeName varchar(50) NOT NULL, basePercentage decimal NOT NULL, minimalCost decimal, PRIMARY KEY(Id)); # Maybe Load this Info from XML ? CREATE TABLE TaxesTypes(Id bigint AUTO_INCREMENT, TaxesTypeName varchar(50) NOT NULL, basePercentage decimal NOT NULL, PRIMARY KEY(Id)); # Costs: rent, depreciation..... wages fund, social fund CREATE TABLE CostsReport(Id bigint AUTO_INCREMENT, Month int NOT NULL, Year int NOT NULL, FixedCosts decimal NOT NULL, VariableCosts decimal NOT NULL, PRIMARY KEY(Id)); # Payments: percents for saving account, payments when client close account, percents for external loans, investment payments CREATE TABLE PaymentsReport(Id bigint AUTO_INCREMENT, Month int NOT NULL, Year int NOT NULL, TotalPayments decimal NOT NULL, PRIMARY KEY(Id)); # Income: percents for credits, comissions, investment revenue CREATE TABLE IncomeReport(Id bigint AUTO_INCREMENT, Month int NOT NULL, Year int NOT NULL, TotalIncome decimal NOT NULL, PRIMARY KEY(Id)); Что-то типа такого для начала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 22:41 |
|
||
|
Проектирование БД для банка
|
|||
|---|---|---|---|
|
#18+
1xenix, можно посмотреть модели здесь Спасибо за ссылку. Такое ощущение, что моя модель будет даже посложнее, чем у них. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 22:46 |
|
||
|
Проектирование БД для банка
|
|||
|---|---|---|---|
|
#18+
авторможно посмотреть модели Спасибо. Посмотреть можно, конечно. Вопрос немножко в другом: темы, которые я прочитал на sql.ru по поводу проектирования базы отдела кадров, в конечном итоге заканчивались двумя пунктами. Пункт первый: автор - балбес и в своей схеме не учел (дальше идет список требований на две страницы А4 10-м кеглем). Пункт второй: а вот в нашей системе учету кадров посвящено 150 таблиц, 700 хранимых процедур и 200 триггеров (учитывается и обрабатывается все, что может присниться только в пьяном угаре). Не было только одного - схемы этой великолепной БД из 150 таблиц. Вот мне и интересно - знает ли кто-то на sql.ru топик, где приведена схема БД кадров, оборенная всеми местными посетителями без любьимых уверток про бизнес-логику, бизнес-требования и прочие ужасы того же порядка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 23:17 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38981548&tid=1540499]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
170ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 254ms |
| total: | 541ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...