powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование БД для банка
51 сообщений из 51, показаны все 3 страниц
Проектирование БД для банка
    #38981208
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

В целях саморазвития хочу сделать проект, симулирующий работу банка. Для начала надо определить структур БД. Понимаю, что предметная область очень большая, поэтому будут некоторые упрощения.

Для начала рассмотрим понятие Банк более детально
1. Физическое устройство банка (персонал, услуги, подразделения).
2. Клиенты (физ. лица, юр. лица).
3. Внутренние операции (счета, пополнение/вывод, перерасчет(кредит,или накопительный счет), поручения, архив, статистика).
4. Внешняя политика банка (инвестиции, займы).

Возможно имело бы смысл раскидать п. 3 по п. 1 и 2.,все-такие физ. лица и юридические лица совершают разные операции, но мне так кажется, что логически там большой разницы нету.

Хотелось бы, чтобы вы заценили. Если все норм, пойду расписывать каждый пункт более подробно, определять сушности и зависимости.

П. С. зачеркнутым я пометил то, что очень вероятно не стоит пока делать (а может и вообще не стоит)
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38981345
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не взлетит.

Чтобы взлетело, упростить надо столько, что ничего не останется. Количество видов финансовых инструментов, видов сделок и сложность их внутренней механики такова, что новичку с нуля это не по плечу.

Попробуйте выбрать только один пункт/направление автоматизации и проработать его хоть насколько-то добросовестно.
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38981358
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geronemo... очень вероятно не стоит пока делать (а может и вообще не стоит)
Без знания предметной области Вам вообще нет смысла суетиться. Все уже "украдено" до Вас.
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38981365
xenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторБез знания предметной области Вам вообще нет смысла суетиться
Для саморазвития очень даже есть смысл, особенно если имеется доступ к работающей банковской АБС (поглядеть, как другие делают)
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38981381
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
П-ЛПопробуйте выбрать только один пункт/направление автоматизации и проработать его хоть насколько-то добросовестно.
В принципе так и планирую поступить с п. 3

Вот так я разрисовал п. 1

# Employees
Эта часть у меня будет скорее для красоты и для количества таблиц и понимания того,что я полностью описал предметную область
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
#  Employye personal info 
CREATE TABLE EmployeePersonalInfo (Id bigint AUTO_INCREMENT, firstName  varchar(20) NOT NULL, lastName varchar(20) NOT NULL, phone varchar(20), 
  address varchar(50), Salary bigint NOT NULL,PRIMARY KEY(Id));

#  Employye basic info to login to Workstation and proceed to work
CREATE TABLE EmployeeInfo (Id bigint AUTO_INCREMENT, EmployeePersonalInfoId bigint, login varchar(20) NOT NULL, pass varchar(20) NOT NULL, WorkPhone varchar(20), 
  PRIMARY KEY(Id), FOREIGN KEY(EmployeePersonalInfoId) REFERENCES EmployeePersonalInfo(Id));

# List of All possible Positions (manager, cashier, director, etc)
  CREATE TABLE EmployeePositions(Id bigint AUTO_INCREMENT, EmployeePosition varchar(20) NOT NULL, EmployeeDescription varchar(100), PRIMARY KEY(Id));

# List of All possible Permissions (work wit men, with organizations, open/close accounts, etc.) that could be provided to Employee at specific  position
CREATE TABLE EmployeePermissions(Id bigint AUTO_INCREMENT, PermissionName varchar(20) NOT NULL, PermissionDescription varchar(100), PRIMARY KEY(Id));

# Relations of all permissions that could be provided to Employee at specific  position
CREATE TABLE EmployeeRoles (Id bigint AUTO_INCREMENT, EmployeePositionsId bigint, EmployeePermissionsId bigint, PRIMARY KEY(Id),
  FOREIGN KEY(EmployeePositionsId) REFERENCES EmployeePositions(Id), FOREIGN KEY(EmployeePermissionsId) REFERENCES EmployeePermissions(Id));



# Accounts, Services
Услуги банка. Тут мне чего-то в голову не приходит, кроме типов Аккаунтов. Если текущий то %-ная ставка 0, а если кредитный или накопительный, то будет отличаться знак. Возможно стоит еще создать таблицу документов, требуемых для открытия того или иного счета
Код: sql
1.
2.
# List of All possible Accounts (current, credit, etc...)
CREATE TABLE AccountTypes(Id bigint AUTO_INCREMENT, AccountName varchar(100), basePercentage Decimal, currency int, PRIMARY KEY(Id));
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38981405
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ваша попытка кадрового учета очень слабая. Есть отстоявшийся минимальный набор таблиц для штатного расписания, назначений, переводов и увольнений.

Счета - тоже ноль. Без знания предметной области будет грустно. Прочитайте нормативно-обязательный план счетов банка.
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38981407
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На всякий случай поясню цель этого проекта. Их 3
1. Спроектировать относительно большую БД (для непрофессиоанала) с кучей таблиц и зависимостями. Тут моя задача это попытаться разобрать по косточкам некую сложную предметную область. Разумеется с приближениями и упрощениями, т. к. я выбрал уж больно сложную тему.
2-3. Это уже относится к Java - Освоить пару фреймворков, сделать эмулятор/рандомизатор событий пришел/ушел клиент, открыл/закрыл счет, создал поручение (единоразовое/регулярное), перерасход средств, банкротство компаний, контроль за достаточностью капитала и т. д. В соответствии с этим, постоянный перерасчет состояний счетов.
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38981414
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
П-ЛВаша попытка кадрового учета очень слабая. Есть отстоявшийся минимальный набор таблиц для штатного расписания, назначений, переводов и увольнений.

Ну париться на счет принятий на работу/увольнений, расписаний, болезней, отпусков и т. д. я не буду. Есть какая-то грань, которую я должен провести, чтобы не потонуть.
Ну и в конце концов мне никто не мешает потом систему апгрейднуть в соответствии с принципами SCRUM

Счета - тоже ноль. Без знания предметной области будет грустно. Прочитайте нормативно-обязательный план счетов банка.
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38981423
xenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторЕсть отстоявшийся минимальный набор таблиц для штатного расписания, назначений, переводов и увольнений.
Его где-то можно увидеть?
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38981448
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
П-Л Прочитайте нормативно-обязательный план счетов банка.

А где это можно прочитать ?
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38981454
xenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторА где это можно прочитать ?
про план счетов банка? Это нормативный документ страны. Чаще всего издается Нац.Банком и называется "план счетов бухгалтерского учета банков ....."(ну или подобным образом)
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38981510
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При всем уважении, предметная область для саморазвития очень плохая. АБС одному даже в первом приближении за разумные сроки не сделать. Да и неразумные :-)

Управление клиентскими данными, как раз я, скажем так, специализируюсь по ним. Это одна задача
ОШС - это вторая
Отчетность в ЦБ - это третья
Сложная процедура работы с кредитами - там вариаций не счесть
Сложная процедура работы со счетами - там вариаций не счесть
интеграция с карточными системами, банкоматами, разного рода прикладными системами с одной стороны, и АБС с другой.

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

PS Слышал давно про какую то АБС (на заре становления ИТ в постперестроечной России), которая была написана на бат-никах :-) Наверное, это из категории приснопамятного антивируса Попова. Так что есть шанс повторить подвиг.
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38981548
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНу париться на счет принятий на работу/увольнений, расписаний, болезней, отпусков и т. д. я не буду. Есть какая-то грань, которую я должен провести, чтобы не потонуть.
Я же говорю - вы замахнулись на масштаб, из которого вам придется выкинуть слишком много, т.е. то, что составляет суть задачи. Кадры:
перечень физлиц
справочник должностей
структура организации по подразделениям
штатное расписание в разрезе структуры и должностей
приказы о назначении/переводе/увольнении физлиц в/из слоты штатного расписания

Это минимум, без которого подсистема не может назваться кадрами.

За скобками оставлены отпуска/больничные, табель, зарплаты, налоги на з/п ...
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38981570
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
П-ЛавторНу париться на счет принятий на работу/увольнений, расписаний, болезней, отпусков и т. д. я не буду. Есть какая-то грань, которую я должен провести, чтобы не потонуть.
Я же говорю - вы замахнулись на масштаб, из которого вам придется выкинуть слишком много, т.е. то, что составляет суть задачи. Кадры:
перечень физлиц
справочник должностей
структура организации по подразделениям
штатное расписание в разрезе структуры и должностей
приказы о назначении/переводе/увольнении физлиц в/из слоты штатного расписания

Это минимум, без которого подсистема не может назваться кадрами.

За скобками оставлены отпуска/больничные, табель, зарплаты, налоги на з/п ...

Справочник должностей есть. До физ. лиц-клиентов еще не дошел. Всякие там подразделения, расписания и движения кадров мне не нужны, ТЗ этого не подразумевает.
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38981573
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeronemoДо физ. лиц-клиентов еще не дошел
Как бы еще и ЮЛ есть :-) И ИП.
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38981586
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arm79GeronemoДо физ. лиц-клиентов еще не дошел
Как бы еще и ЮЛ есть :-) И ИП.

Вы 1-е сообщение темы читали ?

Мне бы не помешала помощь вот в каком вопросе - стандартные услуги банка. Я не хочу залезать в дебри и описывать предметную область полностью - всякие там ячейки хранения и х. з что еще.
Пока что в рамках п. 1, 1-го сообщения темы я придумал только 1 таблицу - AccountTypes, сюда можно запихать сколько угодно типов аккаунтов (кредит на авто, на квартиру, потребительский, текущий счет, вклад на 1 год и т. д.).
Возможно стоит придумать еще несколько типов услуг, но чтобы они занимали какую-либо существенную долю в обороте банка (комиссии при обналичивании ? обслуживание банковский карт, или эти деньги достаются платежным системам).
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38981590
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geronemo,

Разумеется читал. Я как бы вам намекаю, что у ЮЛ и у ФЛ разный набор атрибутов, и разная логика работы. В ЮЛ есть еще холдинги, группы компаний и так далее.

Geronemoя придумал только 1 таблицу - AccountTypes, сюда можно запихать сколько угодно типов аккаунтов
Это что, такой своеобразный продуктовый профиль?
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38981607
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeronemoНа всякий случай поясню цель этого проекта. Их 3
1. Спроектировать относительно большую БД (для непрофессиоанала) с кучей таблиц и зависимостями. Тут моя задача это попытаться разобрать по косточкам некую сложную предметную область. Разумеется с приближениями и упрощениями, т. к. я выбрал уж больно сложную тему.
2-3. Это уже относится к Java - Освоить пару фреймворков, сделать эмулятор/рандомизатор событий пришел/ушел клиент, открыл/закрыл счет, создал поручение (единоразовое/регулярное), перерасход средств, банкротство компаний, контроль за достаточностью капитала и т. д. В соответствии с этим, постоянный перерасчет состояний счетов.
Может бать такой вариант стоит рассмотреть:

Если на Java отнесено 2 цели (№2 и №3), то с Java и начинай.
Создавай сервер приложения
а БД "упакуй" в EAV

Если начнёт взлетать - тогда и допилишь (нормализуешь) БД

А так получается задача очень широкая, и времени потребует много
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38981611
xenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторПока что в рамках п. 1, 1-го сообщения темы я придумал только 1 таблицу - AccountTypes, сюда можно запихать сколько угодно типов аккаунтов (кредит на авто, на квартиру, потребительский, текущий счет, вклад на 1 год и т. д.).
Это Вы крепко попутались. В банковской практике бывают активные/пассивные/активно-пассивные счета (внебаланс пока не трогаем). То, что придумали Вы, это банковские продукты (в первом приближении кредиты и депозиты всех размеров, сортов и цветов). Для того, чтобы было интереснее, возьмите учебник по банковской деятельности Вашей страны
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38981671
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Шайтан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. По поводу глубины детализации. Возможно все же стоит какую-то часть предметной области изучить досконально. И, в принципе, Персонал для этого вполне подходит, т. к. таблицы будут все равно пусты и если что-то не так, то помешать бизнес-логике приложения это не сможет.
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38981675
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати, у меня возник наиинтереснейший вопрос - с какого счета банк платит зарплату, аренду и пр. расходы. У банка есть свой собственный счет в своем банке ?

П. С. как видите, углубляясь в предметную область у меня появляются вопросы и это будет отражено в модели. Потому что я хочу отслеживать финансовое состояние банка онлайн, для этого мне нужны и зарплаты и постоянные издержки и налоги и % невозврата и возможные банкротства юр. лиц и т. д.
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38981695
1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xenix, можно посмотреть модели здесь
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38981696
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Продолжение п. 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));

Что-то типа такого для начала.
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38981702
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1xenix, можно посмотреть модели здесь

Спасибо за ссылку. Такое ощущение, что моя модель будет даже посложнее, чем у них.
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38981711
xenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторможно посмотреть модели
Спасибо. Посмотреть можно, конечно. Вопрос немножко в другом: темы, которые я прочитал на sql.ru по поводу проектирования базы отдела кадров, в конечном итоге заканчивались двумя пунктами. Пункт первый: автор - балбес и в своей схеме не учел (дальше идет список требований на две страницы А4 10-м кеглем). Пункт второй: а вот в нашей системе учету кадров посвящено 150 таблиц, 700 хранимых процедур и 200 триггеров (учитывается и обрабатывается все, что может присниться только в пьяном угаре). Не было только одного - схемы этой великолепной БД из 150 таблиц. Вот мне и интересно - знает ли кто-то на sql.ru топик, где приведена схема БД кадров, оборенная всеми местными посетителями без любьимых уверток про бизнес-логику, бизнес-требования и прочие ужасы того же порядка
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38981800
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeronemoП-Лпропущено...

Я же говорю - вы замахнулись на масштаб, из которого вам придется выкинуть слишком много, т.е. то, что составляет суть задачи. Кадры:
перечень физлиц
справочник должностей
структура организации по подразделениям
штатное расписание в разрезе структуры и должностей
приказы о назначении/переводе/увольнении физлиц в/из слоты штатного расписания

Справочник должностей есть. До физ. лиц-клиентов еще не дошел. Всякие там подразделения, расписания и движения кадров мне не нужны, ТЗ этого не подразумевает.
Без штатного расписания и назначение человека на определенную должностью это не ТЗ по кадрам.
Штатное расписание без структуры организации тоже не имеет смыла. Не бывает банк в виде аморфного нечто, всегда деление на департаменты, управления, отделы ..., причем в банковских кадрах это увязано с направлениями бизнеса и с контролем доступа, т.е. кадровая информация очень важна.

Делать в таком виде, как вы себе упростили "кадры банка" бессмысленно.
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38981805
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeronemoArm79пропущено...

Как бы еще и ЮЛ есть :-) И ИП.

Вы 1-е сообщение темы читали ?

Мне бы не помешала помощь вот в каком вопросе - стандартные услуги банка. Я не хочу залезать в дебри и описывать предметную область полностью - всякие там ячейки хранения и х. з что еще.
Пока что в рамках п. 1, 1-го сообщения темы я придумал только 1 таблицу - AccountTypes, сюда можно запихать сколько угодно типов аккаунтов (кредит на авто, на квартиру, потребительский, текущий счет, вклад на 1 год и т. д.).
Возможно стоит придумать еще несколько типов услуг, но чтобы они занимали какую-либо существенную долю в обороте банка (комиссии при обналичивании ? обслуживание банковский карт, или эти деньги достаются платежным системам).
Полный ноль. Масштаб задачи и уровень подхода к ее решению полностью антагонистичны.
Какой у вас опыт работы в банке/с банком ?
Возьмите задачку попроще и поконкретнее - один из типов финансовых операций.
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38981859
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П-ЛGeronemoпропущено...


Справочник должностей есть. До физ. лиц-клиентов еще не дошел. Всякие там подразделения, расписания и движения кадров мне не нужны, ТЗ этого не подразумевает.
Без штатного расписания и назначение человека на определенную должностью это не ТЗ по кадрам.

Человек вроде не сказал, что собирается писать кадровую систему - он сказал что будет набор сущностей "персонал" для банка. Набор сущностей "персонал" в АБС действительно должен входить (хотя бы для всяких аудитов действий), а полноценная кадровая система прямо внутри АБС - зачем?
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38981878
Geronemo,

еще погуглите по слову опердень. Не смейтесь, это сленговое название. Операционный день банка
Вот, немного оффтопик, но поясняет значение синонима АБС
опердень
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38981974
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТС, вам принципиальна область проектирования с нуля?
Если нет - велком в личку - есть предложение по очень фоновой задаче - у самого никак руки не дойдут :)

Если структура в итоге получится стоящей - возможна монетизация усилий, но как минимум опыта проектирования будет море.
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38982710
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тут возникла небольшая проблема. Я хочу завести такую сущность, как Аккаунт. А именно - некий банковский счет. Я не хочу плодить разных типы аккаунтов (возможно я не прав ?), просто одним из столбцов будет тип аккаунта и их будет штук 10.
При этом аккаунт может быть заведен для физ. лица, а может быть для юридического.
Таблицы Физ. лиц и юридических у меня разные. А тут в таблице аккаунтов все они будут вперемешку.
Проблема вот в чем. Мне нужно из таблицы Аккаунт сделать поле Owner - FOREIGN KEY в 2 разные таблицы, чтобы это работало так - если это счет юр. лица, то ищем владельца счета в таблице юр. лиц, а если физ. лицо, то ищем в таблице юр. лиц.

Самое простое решение - это сделать тупо 2 таблицы - AccountsForPersons и AccountsForCompanies. Но тогда при разработке бизнес-логики увеличивается количество кода. Логически нам нету разницы, дали мы кредит в 100000$ мужику или компании. Поэтому мне хотелось бы оставить 1 таблицу. Но как тогда быть с FOREIGN KEY
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38982720
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeronemoТут возникла небольшая проблема. Я хочу завести такую сущность, как Аккаунт. А именно - некий банковский счет. Я не хочу плодить разных типы аккаунтов (возможно я не прав ?), просто одним из столбцов будет тип аккаунта и их будет штук 10.
При этом аккаунт может быть заведен для физ. лица, а может быть для юридического.
Таблицы Физ. лиц и юридических у меня разные. А тут в таблице аккаунтов все они будут вперемешку.
Проблема вот в чем. Мне нужно из таблицы Аккаунт сделать поле Owner - FOREIGN KEY в 2 разные таблицы, чтобы это работало так - если это счет юр. лица, то ищем владельца счета в таблице юр. лиц, а если физ. лицо, то ищем в таблице юр. лиц.

Самое простое решение - это сделать тупо 2 таблицы - AccountsForPersons и AccountsForCompanies. Но тогда при разработке бизнес-логики увеличивается количество кода. Логически нам нету разницы, дали мы кредит в 100000$ мужику или компании. Поэтому мне хотелось бы оставить 1 таблицу. Но как тогда быть с FOREIGN KEY

у ФЛ и ЮЛ общая таблица-предок
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38983565
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arm79у ФЛ и ЮЛ общая таблица-предок
Спс.

Как Вам такое

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
# 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));

# AccountManagement
# List of  Accounts. There will bee added field 
CREATE TABLE Account(Id bigint AUTO_INCREMENT, AccountNumber bigint NOT NULL, AccountTypesId bigint NOT NULL,
  PRIMARY KEY(Id), FOREIGN KEY(AccountTypesId) REFERENCES AccountTypes(Id));

# Clients
# Clients basic information
CREATE TABLE AccountOwner(Id bigint AUTO_INCREMENT, ClientId bigint NOT NULL, PRIMARY KEY(Id));

CREATE TABLE ClientPersons(Id bigint AUTO_INCREMENT, AccountOwnerId BigInt, firstName  varchar(20) NOT NULL, lastName varchar(20) NOT NULL, phone varchar(20), address varchar(50), 
  PRIMARY KEY(Id), FOREIGN KEY(AccountOwnerId) REFERENCES AccountOwner(Id));

# Company basic information
CREATE TABLE ClientCompany(Id bigint AUTO_INCREMENT, AccountOwnerId BigInt, CompanyName varchar(50) NOT NULL, phone varchar(20) NOT NULL, address varchar(50), 
  PRIMARY KEY(Id), FOREIGN KEY(AccountOwnerId) REFERENCES AccountOwner(id));

# Each Account Owner could have several accounts
CREATE TABLE AccountRelatedToOwner(Id bigint AUTO_INCREMENT,  AccountId  bigint NOT NULL,  AccountOwnerId bigint, 
  PRIMARY KEY(Id), FOREIGN KEY(AccountId) REFERENCES Account(Id), FOREIGN KEY(AccountOwnerId) REFERENCES AccountOwner(Id));
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38987760
dma_caviar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79GeronemoТут возникла небольшая проблема. Я хочу завести такую сущность, как Аккаунт. А именно - некий банковский счет. Я не хочу плодить разных типы аккаунтов (возможно я не прав ?), просто одним из столбцов будет тип аккаунта и их будет штук 10.
При этом аккаунт может быть заведен для физ. лица, а может быть для юридического.
Таблицы Физ. лиц и юридических у меня разные. А тут в таблице аккаунтов все они будут вперемешку.
Проблема вот в чем. Мне нужно из таблицы Аккаунт сделать поле Owner - FOREIGN KEY в 2 разные таблицы, чтобы это работало так - если это счет юр. лица, то ищем владельца счета в таблице юр. лиц, а если физ. лицо, то ищем в таблице юр. лиц.

Самое простое решение - это сделать тупо 2 таблицы - AccountsForPersons и AccountsForCompanies. Но тогда при разработке бизнес-логики увеличивается количество кода. Логически нам нету разницы, дали мы кредит в 100000$ мужику или компании. Поэтому мне хотелось бы оставить 1 таблицу. Но как тогда быть с FOREIGN KEY

у ФЛ и ЮЛ общая таблица-предок
Я всегда думал что розница и корп. это вообще разные департаменты, разные принципы и разное ПО. Кстати корп. намного проще.

Geronemo,

А почему именно банк? Вам ведь все равно как я понял. Берите какую-нибудь прикладную область по-интереснее.
Конечно можно было бы рассмотреть систему ведения счетов и остатков, но опять же, какой смысл, в банке она лицевая, потом нигде не пригодится. Или вы в банк намерены пойти работать?
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38987767
dma_caviar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geronemo,

... вот у меня недавно были предложения от производителя дирижаблей, еще одно - автоматизация пожарной части в чехии))
Одни названия чего стоят))
А банк это тоска смертная.
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38987817
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dma_caviar Кстати корп. намного проще.

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

Еще можно сравнить кол-во возможностей в клиент-банке для юр.лиц и интернет банке для физ лиц. В первом переводы, депозиты, кредиты, во втором все тоже самое + 100500 других операций.

И еще в коп. вроде как нет высосанных из пальца продуктов.
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38988255
xenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не ссорьтесь,
Корпоратив и физики - оба круты, только в разных вопросах :-)
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38989072
gandjustas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geronemo,

А ты какую проблему решить хочешь? Бд в вакууме не бывает, надо понять прикладную логику.
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38993052
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gandjustasGeronemo,

А ты какую проблему решить хочешь? Бд в вакууме не бывает, надо понять прикладную логику.

Создать многопоточную высоконагруженную среду с кучей всяких нюансов. Банк, как предметная область, это что-то понятное (чем изобретать колесо) + понт.
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38993054
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeronemogandjustasGeronemo,

А ты какую проблему решить хочешь? Бд в вакууме не бывает, надо понять прикладную логику.

Создать многопоточную высоконагруженную среду с кучей всяких нюансов. Банк, как предметная область, это что-то понятное (чем изобретать колесо) + понт.жениться тебе, барин, надо (с)
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38993059
dma_caviar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geronemoэто что-то понятное
Оно и видно
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38993071
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
заминусовать бы вас за флуд, да жаль нету такой возможности на форуме
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #38993149
babona
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
о,пердень
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #39017272
Вадиман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xenixавторПока что в рамках п. 1, 1-го сообщения темы я придумал только 1 таблицу - AccountTypes, сюда можно запихать сколько угодно типов аккаунтов (кредит на авто, на квартиру, потребительский, текущий счет, вклад на 1 год и т. д.).
Это Вы крепко попутались. В банковской практике бывают активные/пассивные/активно-пассивные счета (внебаланс пока не трогаем). То, что придумали Вы, это банковские продукты (в первом приближении кредиты и депозиты всех размеров, сортов и цветов). Для того, чтобы было интереснее, возьмите учебник по банковской деятельности Вашей страны
Активно-пассивных уже давно нет, вместо них парные счета.
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #39017273
Вадиман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeronemoArm79пропущено...

Как бы еще и ЮЛ есть :-) И ИП.

Вы 1-е сообщение темы читали ?

Мне бы не помешала помощь вот в каком вопросе - стандартные услуги банка. Я не хочу залезать в дебри и описывать предметную область полностью - всякие там ячейки хранения и х. з что еще.
Пока что в рамках п. 1, 1-го сообщения темы я придумал только 1 таблицу - AccountTypes, сюда можно запихать сколько угодно типов аккаунтов (кредит на авто, на квартиру, потребительский, текущий счет, вклад на 1 год и т. д.).
Возможно стоит придумать еще несколько типов услуг, но чтобы они занимали какую-либо существенную долю в обороте банка (комиссии при обналичивании ? обслуживание банковский карт, или эти деньги достаются платежным системам).
Товарищ, остынь.
Ты не в теме.
У дилетанта получится дилетантский продукт, польза от которого будет ровно одна - пример того, как не надо делать.
А если задаться целью "найти задачу, чтобы промучиться с ней несколько лет и потом понять, что так делать не надо" - есть и более простые примеры для движения к свету, не требующие самоистязания и проживания в монастыре на протяжении нескольких лет.

Что делает коня конем? У него есть некоторое кол-во конечностей, чего-то там сзади и снизу торчит, морда определенного склада, грива, копыта и все такое.
Если ты обрежешь все, что не понимаешь в банковском деле, то вместо коня у тебя будет надутый шар, который ты продолжаешь называть конем.

Ты готов к диалогу? Или на любой вброс новых сущностей, о которых ты понятия не имеешь, ты скажешь "я этого не знал, но мне это не нужно, я это обрежу"?
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #39017275
Вадиман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
babonaо,пердень
Я тоже поначалу привык к этому термину и даже не понимал, как это со стороны звучит. Ровно до тех пор, пока меня кто-то не переспросил "что за обос@рнь?"
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #39022704
Q.Tarantino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geronemo,


Нету там accounttypes. Есть план счетов. От него и пляшут. А тип счета - это активный или пассивный.
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #39023589
xenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторЕсть план счетов. От него и пляшут. А тип счета - это активный или пассивный.
Боюсь, топикстартеру это уже неинтересно и ненужно. Он отбыл пилить на Яве
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #39023944
Вадиман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xenixавторЕсть план счетов. От него и пляшут. А тип счета - это активный или пассивный.
Боюсь, топикстартеру это уже неинтересно и ненужно. Он отбыл пилить на Яве
Надо полагать, что уже вышла бета-версия банковской системы от автора :)
...
Рейтинг: 0 / 0
Проектирование БД для банка
    #39024018
xenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторНадо полагать, что уже вышла бета-версия банковской системы от автора
Несомненно. Причем многопоточная, высоконагруженная и на яве, правда, не пересекающаяся ни с одной из известнх науке банковских практик
...
Рейтинг: 0 / 0
51 сообщений из 51, показаны все 3 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование БД для банка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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