|
Открываем Access, создаем новую пустую базу данных.
После этого выбираем команду "Создать таблицу"
Начинаем с таблицы "Физические лица" .
Наименование данных | Тип данных | Примечание | Тип данных Access |
Серия паспорта | Строка | Серия паспорта состоит из двух букв | Текстовый,
Длина поля - 2,
Обязательное - Да
Пустые строки - Нет
Индексированное - Да, допускаются совпадения |
Номер паспорта | Число | Номер паспорта - целое число | Числовой,
Длинное целое,
Число десятичных знаков - 0,
Маска ввода - 000000,
Обязательное - Да,
Индексированное - Да, допускаются совпадения |
ИНН | Число | Обязательно для идентификации, число.
Внимание! Для реальной базы данных так делать нельзя, потому что человек может отказаться от получения ИНН по религиозным соображениям и ИНН у него может отсутствовать. Мы же для простоты считаем, что у каждого человека есть свой уникальный ИНН
| Числовой,
Длинное целое,
Число десятичных знаков - 0,
Маска ввода - 0000000000
Обязательное - Да,
Индексированное - Да, совпадения не допускаются,
Ключевое
|
Адрес прописки | Строка | Адрес прописки будет нужен для оформления юридических действий | Текстовое,
Размер поля - 255 |
Адрес проживания | Строка | Этот адрес будет нужен для связи с клиентом, направления ему писем | Текстовое,
Размер поля - 255 |
Контактный телефон | Строка | Потребуется для быстрой связи с клиентом. Тип данных - могло быть и число, но для простоты учебного примера - пусть будет строка | Текстовое,
Размер поля - 16 |
Перед созданием таблицы "Юридические лица" необходимо создать служебную таблицу "Формы собственности"
Наименование | Тип данных | Комментарий | Тип данных Access |
ID | | Этот идентификатор необходим для дальнейшего создания связи с таблицей "Юридические лица" | Тип данных - Счетчик,
Длинное целое,
Последовательный,
Индексированное - Да, совпадения не допускаются |
Форма собственности | | Это - текстовое название формы собственности | Текстовое,
Размер поля - 255 |
Создаем таблицу "Юридические лица"
Наименование | Тип данных | Комментарий | Тип данных Access |
Наименование юр.лица | Строка | Наименование - обязательный параметр, однако, встречаются организации с одинаковыми названиями | Текстовое,
Размер поля - 255 |
Код | Число | Код организации однозначно ее идентифицирует | Числовой,
Длинное целое,
Число десятичных знаков - 0,
Обязательное поле - Да,
Индексированное - Да, совпадения не допускаются,
Ключевое |
Форма собственности | | Виды форм собственности определяются законодательством. Но справочник форм собственности у нас уже создан и вместо указания самой формы собственности мы будем использовать ссылку на нее. Поэтому укажем тип поля - как числовое, длинное целое. | Числовой,
Длинное целое,
Обязательное - Да,
Индексированное - Да, совпадения допускаются |
Юридический адрес | Строка | Адрес, по которому зарегистрировано юр. лицо | Текстовое,
Размер поля - 255 |
Адрес для переписки | Строка | Адрес, по которому следует направлять почтовую корреспонденцию. Часто, это - разные адреса | Текстовое,
Размер поля - 255 |
Телефон | Строка | Контактный телефон приемной, можно задать числом, но мы зададим строкой для простоты примера | Текстовое,
Размер поля - 16 |
Директор | | Поскольку таблица физических лиц уже есть, то мы вместо указания директора, будем хранить ссылку на таблицу физических лиц. Поэтому укажем тип поля - как числовое, длинное целое. | Числовой,
Длинное целое,
Обязательное - Да,
Индексированное - Да, совпадения допускаются |
Главный бухгалтер | | Поскольку таблица физических лиц уже есть, то мы вместо указания директора, будем хранить ссылку на таблицу физических лиц. Поэтому укажем тип поля - как числовое, длинное целое. | Числовой,
Длинное целое,
Обязательное - Нет,
Индексированное - Да, совпадения допускаются |
Создаем таблицу "Условия депозитов"
Наименование данных | Тип данных | Комментарий | Тип данных Access |
Код | | По данному полю мы будем идентифицировать тип депозита | Счетчик,
Длинное целое,
Новые значения - последовательные,
Индексируемое - Да, совпадения не допускаются |
Срок начала действия условий депозита | Дата | Дата начала срока действия условий нужна для того, чтобы не иметь возможности открыть депозит раньше времени | Дата/Время
Обязательное - Да |
Срок окончания действия условий депозита | Дата | Возможна ситуация, когда депозиты по старым условиям еще лежат в банке, но новые вклады на данных условиях уже не принимаются. Значение окончания действия также может отсутствовать, если предложение действует в данный момент | Дата/Время
Обязательное - Нет |
Условия действительны для физических лиц | Логический | Предполагается информация да/нет | Логический
Формат поля - Да/Нет |
Условия действительны для юридических лиц | Логический | Предполагается информация да/нет | Логический
Формат поля - Да/Нет |
Минимальная сумма депозита | Число | | Денежный |
Минимальный срок размещения (дней) | Число | Без указания срока размещения договор депозита смысла не имеет | Целое,
Значение по умолчанию - 30,
Обязательное - Да |
Процентная ставка | Число | | Одинарное с плавающей точкой |
Условия выплаты процентов | Перечисление | Можно было бы создать отдельный справочник с условиями видов начисления процентов, но для простоты примера мы принимаем следующее:
0 - ежемесячное начисление по концу месяца на отдельный счет
1 - начисление по концу месяца на тот же самый счет
2 - начисление процентов в конце срока на тот же самый счет | Целое,
Значение по умолчанию - 0,
Обязательное - Да |
Возможно ли пополнение депозита | Логический | | Логический
Формат поля - Да/Нет |
Допускается ли досрочное снятие | Логический | Досрочное снятие - это, фактически, разрыв условий договора, поэтому, как правило, при выплате процентов на вклад начисляются проценты по ставке, иной, чем изначально оговоренная | Логический
Формат поля - Да/Нет |
Процентная ставка при досрочном снятии | Число | | Одинарное с плавающей точкой |
Создаем таблицу "Договоры"
Наименование | Тип данных | Примечание | Тип данных Access |
Код | | Для идентификации можно, конечно, использовать и номер договора. Но, поскольку, строка не удобна для создания связей между таблицами и, потенциально, будет замедлять быстродействие, создание дополнительного поля оправдано | Счетчик,
Длинное целое,
Новые значения - последовательные,
Индексированное - Да, совпадения не допускаются |
Дата заключения | Дата | | Дата/Время,
Значение по умолчанию =Date(),
Обязательное - Да |
Номер | Строка | Договор может быть пронумерован, например, как 1/3-55, поэтому тип данных - строка | Текстовый,
Размер поля - 32 |
Дата окончания | Дата | Считаем, что все договоры имеют дату окончания и не пролонгируются | Дата/Время |
Договор с юр или физ лицом? | Логический | Далее у нас две ссылки, и лишь одна из них будет задействована. Поэтому данное поле, фактически, является переключателем, с кем у нас заключен договор и на какую таблицу искать ссылку (физ или юр) | |
Договор с юр лицом |
| Ссылка на юридическое лицо | Числовой,
Длинное целое,
Индексированное - Да, допускаются совпадения |
Договор с физ лицом | | Ссылка на физическое лицо | Числовой,
Длинное целое,
Индексированное - Да, допускаются совпадения |
Создаем таблицу "Счета"
Наименование | Тип данных | Примечание | Тип данных Access |
Группа счета | Число | Согласно утвержденному плану счетов банков в Украине это должна быть цифра "26" всегда. Поэтому редактирование поля мы не предумотрим | Тип данных - Целое,
Значение по умолчанию - 26 |
Подгруппа счета | Число | "10", если это - краткосрочный депозит юр. лица
"15", если это - долгосрочный депозит юр. лица
"30", если это - краткосрочный депозит физ. лица
"35", если это - долгосрочный депозит физ. лица | Тип данных - Целое |
Подномер счета | Число | Остальные 10 цифр, которые формируют номер счета
Счетчик определит нам сквозную нумерацию, которая не зависит от группы и подгруппы счета. Это не совсем правильно. Мы должны нумеровать счета независимо. Но, поскольку пример учебный - мы сделали так для простоты.
| Счетчик,
Новые значения - Последовательные,
Ключевое |
Номер счета | | В номере счета 14 цифр, поэтому, чтобы получить счет вида
2615... нам необходимо обеспечить сдвиг по регистрам на соответствующее число разрядов | Вычисляемое,
Формула:
[Группа счета]*1000000000000 + [Подгруппа счета]*10000000000 + [Подномер счета] |
Дата открытия | Дата | Счет должен обязательно иметь дату открытия | Дата/Время,
Значение по умолчанию =Date(),
Обязательное - Да |
Дата закрытия | Дата | | Дата/Время |
Договор | | Ссылка на договор | Числовой,
Длинное целое,
Индексированное - Да, допускаются совпадения |
Сумма | | Сумма, которая храниться на счете в данный момент | Денежный,
Формат поля - Денежный |
Теперь заходим в схему данных и устанавливаем связи между:
"Юридические лица.Форма собственности" и "Формы собственности.ID"
"Юридические лица.Директор" и "Физические лица.ИНН"
"Юридические лица.Главный бухгалтер" и "Физические лица.ИНН"
"Договоры.Договор с юр лицом" и "Юридические лица.Код ОКПО"
"Договоры.Договор с физ лицом" и "Физические лица.ИНН"
Получаем примерно следующую схему базы данных депозитов:
Определяем набор данных для БД |
Описание курса
| Создание форм Access для редактирования данных
|