Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Нужна помощь в логике построения базы данных / 22 сообщений из 22, страница 1 из 1
22.05.2020, 11:10
    #39960620
g4ssam
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь в логике построения базы данных
Добрый день, уважаемые форумчане!

Направьте меня на правильный путь. Простецкое задание по созданию базы данных банка, но я уже 3й день не могу додуматься, как правильно организовать базу в Access.
В общем суть вопроса - контрольная работа. Нужно создать базу данных банка. С кредитами и счетами клентов.
Я это представил себе так:
Создаются таблицы: клиенты, тип кредита, кредит, погашения по кредиту, тип вкладов, транзакции по вкладу.
Сначала хотел все усложнить с различными типами кредитов, различными типами вкладов, но вскоре понял, что я не понимаю, как правильно построить связи и как производить вычисления.

Я бы не писал сюда, если бы изначально не пытался сам все вычитать и понять, но мне кажется, что я совсем не там копаю.

Допустим, создал все таблицы.

В таблице клиенты:
Код клиента
Фамилия
Имя
Отчество

Тип кредита:
Код кредита
код клиента
Сумма кредита // Не более 2 500 000р.
залог //Нужен для того, чтобы получить кредит более 2 500 000р
Срок //в годах
Процент по кредиту //выбирается от балды
Процент //сделал отдельное поле для простоты вычисления. делит процент на 100 и прибавляет единицу
Плтаеж //Вычисляет сумму ежемесячного платежа
Дата получения кредита
Полностью погаен //логика да/нет
Сумма кредита + процент

Погашение кредита:
Код погашения
Код кредита
Сумма погашения //можно выбрать либо минимальный платеж из таблицы "тип кредита", либо любую сумму
Дата погашения

Скорее всего я неправильно понимаю, как работать с запросами
Сделал запрос погашения кредитов, где вывожу номер кредита, сумму погашения и дату погашения. но сумма погашения выходит не числом, а id

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

По счетам

Счет клиента:
Код счета
Код клиента
Дата клиента
Сумма на счету //я так понимаю ее можно обновлять запросом, но все равно не получилось сделать

Транзакции:
Код транзакции
Код счета
Сумма внесения
Сумма снятия //как сделать, чтобы снять нельзя было больше, чем имеется на счету. из разряда:
if ( [Сумма на счету] <= [Сумма снятия] )
{
"Недостаточно средств"
}


Прикладываю одну из самых полных баз, которую начинал делать
Буду очень признателен в помощи
Не прошу сделать ее за меня, прошу помочь разобраться
...
Рейтинг: 0 / 0
22.05.2020, 11:11
    #39960621
g4ssam
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь в логике построения базы данных
...
Рейтинг: 0 / 0
22.05.2020, 11:27
    #39960632
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь в логике построения базы данных
g4ssam
Направьте меня на правильный путь. Простецкое задание по созданию базы данных банка, но я уже 3й день не могу додуматься, как правильно организовать базу в Access.

банка
Сделать базу в postgresql, очевидно.
...
Рейтинг: 0 / 0
22.05.2020, 13:05
    #39960686
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь в логике построения базы данных
g4ssam,
Начинаем разговор....(Карлсон который живет на крыше)
-гляньте это
-с банковскими "делами" знаком очень поверхностно-если нужно хранить еще какие-то данные-имеется ввиду еще какую-то сущность (а не наполнение созданных таблиц)-укажите
-всякие дополнения на хранимых данных,типа графика платежей(задолженности на конкретную дату,остатков по выплатам и т.д и т.п-это позже) а пока определитесь какие еще данные(именно данные,а не инфу которую можно получить из этих данных)необходимо хранить
...
Рейтинг: 0 / 0
22.05.2020, 13:42
    #39960711
g4ssam
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь в логике построения базы данных
sdku, добрый день

Если я правильно понял
1. То хранить дополнительные данные должны быть, допустим, сумма платежей клиента по его кредиту, чтобы используя эту информацию вычислять и обновлять "остаток кредита"
Но это нужно только для того, чтобы последний платеж был не больше остатка по кредиту.
Как-то так

2. Хочу уже максимально упростить базу, чтобы не запутаться в ней. Чтобы не было ничего лишнего
Есть клиент
он может взять кредит и открыть счет
он может гасить кредит(главное, чтобы он не выплатил по кредиту больше, чем нужно)
Когда клиент погасит кредит, то на этом кредите просто появится логическая галочка, что кредит погашен
он может пополнять и снимать со счета деньги(главное, чтобы он не смог снять больше остатка)
...
Рейтинг: 0 / 0
22.05.2020, 18:07
    #39960820
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь в логике построения базы данных
g4ssam,
Гляньте это
Если устроит доработаем учет выплат, расходы по счету,округление и пр.
...
Рейтинг: 0 / 0
22.05.2020, 22:43
    #39960909
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь в логике построения базы данных
вдогонку:в тбл."счет" записи с кодом<11 удалить(созданы при отладке)
...
Рейтинг: 0 / 0
25.05.2020, 15:53
    #39961750
Stanislav P
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь в логике построения базы данных
Хм...
У нас есть клиент. Он может открыть дебетовый счёт в банке, закрыть этот счёт в банке, положить деньги, снять деньги не более того, что есть на счету, перевести часть денег куда-то, получить откуда-то деньги. Клиент так-же может открыть кредитовый счёт, снять с него деньги не более лимита (усложнять логику не будем), перевести куда-то деньги (оплатить покупку), положить деньги (погасить кредит), либо кто-то другой положит деньги.
Исходя из этого имеем:

Таблицу с клиентам и: банковский номер клиента, ФИО, разные другие данные.
Таблицу со счетами : Тип счёта (дебет, кредит). номер счёта. Какому клиенту принадлежит. Статус счёта (рабочий, закрытый). Баланс счёта (сколько денег лежит на счету) обновляется после каждой транзакции.
Таблицу с транзакциями : Номер счёт. Сумма прихода или расхода (приход идёт плюсом, расход идёт минусовой суммой. Источник прихода или расхода (магазин, банкомат, касса банка). Может быть понадобится Тип операции (приход денег, снятие денег наличкой, оплата).
Это минимум!
Информацию по кредиту - срок, проценты и прочее можно вынести в отдельную таблицу, а можно хранить в таблице со счетами. Но лучше вынести.

После этого уже можно и запросы, и формы строить.
...
Рейтинг: 0 / 0
25.05.2020, 22:52
    #39961902
Программист-Любитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь в логике построения базы данных
Stanislav P
Хм...
У нас есть клиент. Он может открыть дебетовый счёт в банке, закрыть этот счёт в банке, положить деньги, снять деньги не более того, что есть на счету, перевести часть денег куда-то, получить откуда-то деньги. Клиент так-же может открыть кредитовый счёт, снять с него деньги не более лимита (усложнять логику не будем), перевести куда-то деньги (оплатить покупку), положить деньги (погасить кредит), либо кто-то другой положит деньги.
Исходя из этого имеем:

Таблицу с клиентам и: банковский номер клиента, ФИО, разные другие данные.
Таблицу со счетами : Тип счёта (дебет, кредит). номер счёта. Какому клиенту принадлежит. Статус счёта (рабочий, закрытый). Баланс счёта (сколько денег лежит на счету) обновляется после каждой транзакции.
Таблицу с транзакциями : Номер счёт. Сумма прихода или расхода (приход идёт плюсом, расход идёт минусовой суммой. Источник прихода или расхода (магазин, банкомат, касса банка). Может быть понадобится Тип операции (приход денег, снятие денег наличкой, оплата).
Это минимум!
Информацию по кредиту - срок, проценты и прочее можно вынести в отдельную таблицу, а можно хранить в таблице со счетами. Но лучше вынести.

После этого уже можно и запросы, и формы строить.

Смешно.
Щас мы ТС легко до полной АБС все нарастим. Беда в том, что я настолько хорошо знаю внутреннюю механику по кредитам, что не смогу выделить для него искусственный игрушечный пример.
Из банковского могу предложить маленький кусок - банковский план счетов.
...
Рейтинг: 0 / 0
25.05.2020, 22:59
    #39961905
Программист-Любитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь в логике построения базы данных
План счетов
...
Рейтинг: 0 / 0
25.05.2020, 23:10
    #39961910
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь в логике построения базы данных
Программист-Любитель,

Да этому студенту (скорее всего) нужно 5-10 таблиц с минимальной логикой чтоб сдать зачет или курсач...
Если это даже местный "занимала" - то всё равно не более того...
...
Рейтинг: 0 / 0
26.05.2020, 10:35
    #39962051
Stanislav P
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь в логике построения базы данных
Программист-Любитель

Смешно.
Щас мы ТС легко до полной АБС все нарастим. Беда в том, что я настолько хорошо знаю внутреннюю механику по кредитам, что не смогу выделить для него искусственный игрушечный пример.
Из банковского могу предложить маленький кусок - банковский план счетов.


ТСу нужен минимум чтобы понять как строить БД, а то он плодит бессмысленные сущности. А усложнить мы можем всегда, даже без использования всей механики российской банковской системы, применяя только обычную логику. :)
...
Рейтинг: 0 / 0
26.05.2020, 15:03
    #39962267
g4ssam
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь в логике построения базы данных
vmag,

Все верно) максимально упрощенная логика работы БД.
Поковырявшись еще пару днем немного доделал ее. Осталось разобраться с погашением суммы и как сделать Счет.
Что я представляю под счетом
Есть 3 связанные таблицы
Клиент
Счет: код счета, клиент, дата открытия, сумма на счету
Транзакции: код транзакции, код клиента, код счета, Пополнение, Снятие
Но я не понимаю логику создание, скажем так, самой транзакции

Как сделать, чтобы после добавления записи в таблицу транзакций в таблице счета обновлялись данные в графе сумма на счету
...
Рейтинг: 0 / 0
26.05.2020, 15:05
    #39962271
g4ssam
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь в логике построения базы данных
Приложу, что в данный момент у меня вышло
...
Рейтинг: 0 / 0
27.05.2020, 10:15
    #39962698
Stanislav P
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь в логике построения базы данных
g4ssam
Как сделать, чтобы после добавления записи в таблицу транзакций в таблице счета обновлялись данные в графе сумма на счету

Делаешь функцию в которую передаёшь код счёта и сумму которая в транзакции.
В самой функции находишь счёт по его коду и прибавляешь сумму транзакции к итоговой сумме на счету.

Ещё нужны проверки, так как с дебетового счёта снять больше чем есть нельзя. А с кредитового нельзя выше лимита, если он есть в логике приложения.
По сути получается так: при заполнении транзакции, после нажатия кнопки "Провести/сохранить/ок" проверяются лимиты счёта и если всё нормально, то транзакция записывается и обновляется сумма счёта. А если нет, то транзакция не проводится о чём сообщается юзеру вводящему данные.

PS. Транзакции в твоей программе это просто запись в таблице транзакций: Код счёта, сумма, дата и источник денег.
...
Рейтинг: 0 / 0
27.05.2020, 10:38
    #39962709
g4ssam
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь в логике построения базы данных
Stanislav P,

Эту функцию нужно создавать в событиях? и подскажите, как сделать, чтобы он находил нужную ячейку по коду?

Проверку понимаю, как написать

В данный момент в форме транзакции сделал так
Клиент
Счет
Пополнение
Снятие
дата
Сумма на счету

Сумма на счету выводится из таблицы счета
То есть все как надо
Но вопрос не закрыт, как обновить это значение?)
Глаза уже замылились
...
Рейтинг: 0 / 0
27.05.2020, 12:09
    #39962747
g4ssam
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь в логике построения базы данных
Stanislav P,

Даже так
Какая функция поможет мне обратиться к определенному полю в таблице, грубо говоря: функция1 ([нужное поле];"таблица";фильтр выбора определенного поля(по ключевому, доустим))
и был бы, макрос, наверное, который бы после нажатия кнопки добавить запись, которая стоит у меня в форме, изменял данные в той таблице
функция1 =dlookup(которая бы брала первоначальные данные из нужного поля) + Формы!Транзакции!Пополнение - Формы!Транзакции!снятие

ну, а в проверку поставить
Снятие<=dlookup

так вот! какая может быть эта функция1
...
Рейтинг: 0 / 0
27.05.2020, 12:24
    #39962753
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь в логике построения базы данных
g4ssam,
Земляк,да что ж ты так упорно не желаешь разобраться в примере,что предложен и хочешь обновить какую-то сумму(вычисляемое поле,которого в таблице вообще быть не должно). Вся "транзакция" это не более чем запись в таблице. Недопустимость же снятия суммы превышающей остаток/лимит элементарно проверяется (и при необходимости событие отменяется) на BeforeUpdate
...
Рейтинг: 0 / 0
27.05.2020, 12:30
    #39962754
g4ssam
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь в логике построения базы данных
sdku,

Ох, честно! Надоело разбираться в БД) Прислушаюсь ка я к вам
Уберу к чертям сумму на счету в таблице счета
Сделаю просто запрос на остаток
...
Рейтинг: 0 / 0
27.05.2020, 15:08
    #39962851
g4ssam
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь в логике построения базы данных
Спасибо всем за помощь и подсказки!
получилось сделать то, что я хотел

Остатки по кредитам и счетам реализовал через запросы
А данные с запросов брал через функцию dLookUp

Выложу ту базу, которая у меня получилась
Может быть какому-нибудь студенту пригодится

БД Банк кредит и счета
...
Рейтинг: 0 / 0
27.05.2020, 17:53
    #39962973
g4ssam
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь в логике построения базы данных
g4ssam,

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

Это для тех, кто будет качать, если она кому-то вообще пригодится)
...
Рейтинг: 0 / 0
27.05.2020, 20:25
    #39963054
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь в логике построения базы данных
g4ssam
Это для тех, кто будет качать, если она кому-то вообще пригодится)

нужно было назвать не База данных банк, а Бестселлер банк
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Нужна помощь в логике построения базы данных / 22 сообщений из 22, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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