Назначение программы:
Основная цель:
Дополнительные цели:
Задачи
Так как данный пример обсуждается в качестве аудиторного и одной из целей является обсуждение типов данных, здесь встречаются условно абсурдные данные. Некоторые из приводимых характеристик достаточно настойчиво предлагались студентами на занятиях.
Наиболее важными с точки зрения записной книжки и "досье" будут следующие сведения.
Названные показатели используются для обсуждения формата числовой информации.
Рост (длина тела) измеряется в сантиметрах и описывается трехзначным целым числом.
Это позволяет задать рост почти до 10 м, что явно избыточно, но рост абсолютного большинства
превышает 100 см, что определяет необходимость использования именно трех разрядов.
Точность измерения на самом деле не ограничивается целой частью. Всем известный деревянный ростомер делает это с точностью до 0.5 см, а профессиональный антропометр дает точность в 1 мм.
И в том и в другом случае мы получим одну значащую цифру после десятичного разделителя.
Итого. Тип поля – числовой (Numeric), размер – 5 байт (символов), один из которых идет на десятичную часть и один – на разделитель: N(5,1)
Вес (масса тела) измеряется в сантиметрах и описывается... Давайте порассуждаем.
Ребенок рождается с весом в несколько килограмм и, в теории, он всегда должен быть меньше 100 кг. На практике это число может достигать нескольких сотен килограмм.
Точность измерения веса взрослого человека составляет 50 г.
Итого. Тип поля – числовой (Numeric), размер – 6 байт (символов), два из них – на десятичную часть и один – на разделитель: N(6,2)
Основным объектом будет человек (контакт), заносимый в нашу записную книжку
Хранение покзателей роста и веса в таблице является ошибкой, так как при этом мы теряем информацию (когда производились измерения) и возможность их анализа в динамике. Отсюда вытекает целесообразность создания отдельной таблицы со следующей структурой:
Наименование | Описание | Примечание |
man_id | I | |
MesType | N(1) | 1 - рост, 2 - вес |
MesDate | D(8) | Дата измерения |
Данная таблица играет достаточно большую роль, так как будет использоваться для разграничения доступа
user_id fname C() mname C() lname C()
Табл.ЛЮДИ 0. Идентификатор человека I(5) 1. Код фамилии I(3) 2. Код И I(3) 3. Код О I(3) 4. пол N(1) 5. д/р D(8) 9. Рост I(2) 10. Вес I(2) 11. Примечания M(?) Табл.Эл.адреса Идентификатор человека I(5) Логин C(31) или M КодДомИмени2 I(???) КодДомИмени1 I(2) Табл(спр).Домены1уровня КодДомИмени1 I(2) ИмяДомена C(7) Табл.Страны Код страны I(2) Назв. страны С(20) Табл.Телефоны Код телефонного номера I(5) Код страны С(3) Код тел С(7) Тел.№ С(8) Тип номера С(1) Табл.Тел№-Люди Идентификатор человека I(5) Код телефонного номера I(5) 8. Места работы??????????? 13. Социальные сети?????????? Свалка 12. Адрес почтовый (нас.пункт+?????????) 6. Телефон_Ы (м, д, р) 1. Ф С(55) 2. И C(23) 3. О C(27) 4. пол N(1) 5. д/р D(размер задается СУБД) 9. Рост I(2) 10. Вес I(2) 11. Примечания M(?)