![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Домашнее задание по курсу «Реляционные БД». [IB4.x, IB5.x, IB6.x, MSSQL, MySQL, dBase, FoxPro, Paradox]
красотка (С) © (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. Бегло посмотрел (шибко много букв) и не увидел связи операции со счетом.