Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Домашнее задание по курсу «Реляционные БД». [IB4.x, IB5.x, IB6.x, MSSQL, MySQL, dBase, FoxPro, Paradox]


Страницы:   1 2

красотка (С) ©   (2007-10-02 21:02:00) 

После очередного занятия по курсу «Реляционные БД», преподаватель дал задание построить модель некоторой БД, которая должна хранить информацию о банковских счетах и операциях поведенных по ним.

Далее он пояснил, что собственно банковский счет состоит из 20-ти знаков. Первый знак это номер раздела баланса – обычно цифра. Второй и третий разряд – это балансовый счет первого порядка. Четвертый и пятый разряд – это балансовый счет второго порядка. Разряды с 6-го по 8-ой определяют код валюты, так рубли например 810, доллары США 840, евро 978, кроме того в этих разрядах может быть указан код драгоценного метала, например АХХ, где А – символ, а ХХ число. 9-ый разряд резервное поле. 10-ый и 11-ый разряды определяют индекс банка, а 12-ый и 13-ый определяют индекс подразделения банка в котором открыт и ведется счет. Семь последних разрядов (с 14 по 20-ый) и есть собственно счет.
Операция по счету должна содержать следующую информацию: дата совершения, время совершения, номер документа на основании которого проведена операция, сумма операции, а также два признака позволяющие определить как проведена операция (налично/безналично) и проведена она по дебету счета либо по кредиту.

Кроме того, в БД должна храниться информация о наименовании раздела баланса, наименовании счетов первого порядка, наименовании валюты и ее сигнатуры (RUR, USD, EUR и т.д.), наименовании банка и подразделения банка, а также информация дате открытия и закрытия счета.

Посидев над этой задачкой получилось вот такое решение:

Разделы_Баланаса (ИД_Раздела, Раздел, Наименоваие_раздела)
Счета_первого_порядка (ИД_Счета_ПП, СчетПП, Наименование_счета, ИД_Раздела)
Счета_второго_порядка (ИД_Счета_ВП, СчетВП, ИД_Счета_ПП)
Валюты (ИД_Валюты, Код_Валюты, Наименование_Валюты, Сигнатура_Валюты)
Банки (ИД_Банка, Индекс_Банка, Наименование_Банка)
Подразделения (ИД_Подразделения, Индекс_Подразделения, Наименование_Подразделения, ИД_Банка)
Полный_Счет (ИД_Счета, ИД_Счета_ВП, ИД_Валюты, Резерв, ИД_Подразделения, Счет, Дата_открытия, Дата_закрытия)
Операции (ИД_Операции, Дата_операции, Время_операции, Номер_документа, Сумма_операции, Вид_операции, Тип_операции)


Связи между таблицами по ИД_ххх. Первое поле в каждой таблице ключевое.

Вопрос в том, правильное ли решение? Какое-то громоздкое оно получилось. Т.е. м.б. нужно было просто хранить в одной табличке 20-ти значный счет и все? Кто как считает.
Я вот предполагаю, что если нужно будет сделать, ну скажем запрос для вывода реестра операций за такой-то период, с суммой от ААА до БББ, то придется собирать счет, а это будет медленно работать. А ведь он может задать такой вопрос.


clickmaker   (2007-10-08 13:51:00) [1]


> покупать надо не "Аленку", а "Кузьку" :-)

Лучше "малька" и ириску )


Павел Калугин   (2007-10-08 12:42:00) [2]

> про шифры ничего не знаю,

ну как же:) у некоторых он же ID "клиента" у некоторых ID отдельно а шифр отдельно


Petr V. Abramov   (2007-10-06 00:56:00) [3]

> про шифры ничего не знаю, но сберовский порядок вычисления ключа я видел, так берется счет
порядок вычисления ключа вроде как ЦБ определяет, если проключевано не по нему, РКЦ-МЦИ отшибет. По крайней мере 10 лет назад было так :). Хотя сбер - банк особый :)


красотка (С)   (2007-10-05 20:11:00) [4]

205-ый правила едины для всех банков, они ж ЦБшные :-)


> упущен ключ счета

9-ый разряд резервное поле. это наверное и есть ключ счета :-)
наверное не хотел голову забивать нам :-)

кстати счета во всех банках в 20 символов, однако в сбере действительно есть кодированные счета в 25 знаков, но в балансе их как таковых нет, они собираются в 20-ти значные, т.е. за одним 20-ти значным может стоят несколько 25-ти значных.

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


Павел Калугин   (2007-10-05 11:17:00) [5]


> Sergey13 ©   (05.10.07 11:01) [22]

Все это надо учесть при постановке задачи...
Тем более если препод пытается дать подобие этой постановки


Sergey13   (2007-10-05 11:01:00) [6]

> [20] Павел Калугин ©   (05.10.07 10:53)
> [21] Павел Калугин ©   (05.10.07 10:57)

Безусловно, все это необходимо учесть при написании домашнего задания. 8-)


Павел Калугин   (2007-10-05 10:57:00) [7]

далее вопрос какой это банк. Если сбер - там больше 20ти символов и смысловая нагрузка иная

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


Павел Калугин   (2007-10-05 10:53:00) [8]

постановление 205П соответствующие разделы читать
упущен ключ счета
в разных разделах правила формирования счета разные (опять же см 205П)

структура плана счета деревянная

раздел баланса
       счет первого порядка
               счет ворого порядка


Johnmen   (2007-10-03 17:27:00) [9]

Да-да, ведётесь вы легко..:)


> Sergey13 ©   (03.10.07 10:32) [8]
> Фотку давай.

Я бы сказал,
Фтопку давай.
:)))


Сергей М.   (2007-10-03 17:20:00) [10]


> evvcom ©   (03.10.07 15:42) [17]


Короче, судя по [0], или Красота (с) нам мозги парит или на свалке место такому "заданию")


evvcom   (2007-10-03 15:42:00) [11]


> твоему предприятию нет дела до смыслового содержимого кода
> банковского счета и БИКа

Ну да, так и есть. Я это все к тому, что в [0] вобщем-то не написано, что весь этот смысл надо реализовывать, написано

> Далее он пояснил

а пояснения - это так, для общего развития, необязательные к реализации


Сергей М.   (2007-10-03 15:01:00) [12]


> evvcom ©   (03.10.07 14:50) [14]



> на предприятии мне всегда было достаточно БИК банка и номера
> счета для идентификации рассчетного счет


Оно и понятно - твоему предприятию нет дела до смысловогосодержимого кода банковского счета и БИКа. Главное чтобы деньги туда-сюда ходили быстро и без проблем)

Это примерно как с IP-адресом - пользователи Сети вроде бы знают, что он существует и что он неким волшебным образом отождествляет "корреспондента" по инф.обмену, но вот смысловое содержимое групп разрядов в символьном представлении этого адреса пользователям до лампочки)


Сергей М.   (2007-10-03 14:52:00) [13]


> на бумажечке у меня так


Тады, как все это ни громоздко выглядит, справочника документов явно не хватает.

Ты же сослалась на Номер_документа, а гдеи каком виде этот документ фигурирует в базе ? Препод, думаю, первым делом тебе этот вопрос задаст ..


evvcom   (2007-10-03 14:50:00) [14]

Не знаю, как вся эта ботва с пояснением 20-ти значного номера используется в банковском ПО, но на предприятии мне всегда было достаточно БИК банка и номера счета для идентификации рассчетного счета. По сути БИК и есть уникальный идентификатор.


evvcom   (2007-10-03 14:44:00) [15]

Судя по

> красотка (С)   (02.10.07 21:22) [2]
> Свой ответ я всегда могу аргументировать, в конце я же его
> не с потолка взял.

покупать надо не "Аленку", а "Кузьку" :-)


Sergey13   (2007-10-03 14:11:00) [16]

> [11] красотка (С)   (03.10.07 14:02)
> Не пожалейте денег, купите себе по шоколадке "аленушка", будем Вам и конфетка и фотка!

И кариес. 8-)


красотка (С)   (2007-10-03 14:02:00) [17]

Тут действительно не все верно
Операции (ИД_Операции, Дата_операции, Время_операции, Номер_документа, Сумма_операции, Вид_операции, Тип_операции)

на бумажечке у меня так
Операции (ИД_Операции, ИД_Счета, Дата_операции, Время_операции, Номер_документа, Сумма_операции, Вид_операции, Тип_операции)

Всем спасибо!
Не пожалейте денег, купите себе по шоколадке "аленушка", будем Вам и конфетка и фотка!


Petr V. Abramov   (2007-10-03 11:09:00) [18]

1.
> для вывода реестра операций за такой-то период, с суммой от ААА до БББ, то придется собирать счет, а это будет медленно работать.
с одной стороны, действительно будет.
с другой стороны, при нормальном оптимизаторе "собирание счета" на фоне выборки из таблицы операций видно не будет, т.к. таблица операций огромная, а счета-разделы - пара блоков.
с третье стороны, обращение к счету по номеру - операция очень частая, поэтому небольшое уменьшение производительности на ней в сумме даст "видное" увеличение общей нагрузки.
поэтому я бы или сделал сознательную избыточность, т.е. номар хранил бы полностью, или в счетах-разделах номер сделал бы ключом, тогда проблема ушла бы сама.
2.С тебя конфетка.
3. см [9] :)


Сергей М.   (2007-10-03 11:01:00) [19]


> не увидел связи операции со счетом


Угу.

Самого главного-то во всей этой ботве и не наблюдается)


Sergey13   (2007-10-03 10:32:00) [20]

> [0] красотка (С)   (02.10.07 21:02)

1. Фотку давай.
2. Бегло посмотрел (шибко много букв) и не увидел связи операции со счетом.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо