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-ти значный счет и все? Кто как считает.
Я вот предполагаю, что если нужно будет сделать, ну скажем запрос для вывода реестра операций за такой-то период, с суммой от ААА до БББ, то придется собирать счет, а это будет медленно работать. А ведь он может задать такой вопрос.


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


> Это все нафига ?


По всей вероятности - для интерактивного кодирования/декодирования счета.


Игорь Шевченко   (2007-10-03 09:39:00) [22]


> Какое-то громоздкое оно получилось


Факт громоздкое. Постановку не очень понял, но таблиц чересчур много


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


Это все нафига ? :)


Сергей М.   (2007-10-03 08:35:00) [23]


> нужно было просто хранить в одной табличке 20-ти значный
> счет и все?


Для этого ты как раз и завела справочник "Полный_Счет".


> предполагаю, что если нужно будет сделать, ну скажем запрос
> для вывода реестра операций за такой-то период, с суммой
> от ААА до БББ, то придется собирать счет


Это еще зачем ?


красотка (С)   (2007-10-03 07:12:00) [24]

Видимо серьезные люди сюда больше не заглядывают, решение обсудить не с кем.


  (2007-10-02 21:34:00) [25]

Удалено модератором


красотка (С)   (2007-10-02 21:22:00) [26]

Свой ответ я всегда могу аргументировать, в конце я же его не с потолка взял. Просто м.б. кто-то ткнет меня носом и укажет на явный косяк.


Desdechado   (2007-10-02 21:15:00) [27]

Здесь не может быть вариантов "правильно" и "неправильно".
Если сможешь аргументировать преподавателю свою позицию, это будет правильно. Если же не сможешь, будет неправильно.
Чтобы аргументировать, освежи знания по нормализации данных, хотя бы 1NF-3NF.


Страницы:   1 2

Наверх

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