Программирование >>  Программный интерфейс приложений 

1 ... 11 12 13 [ 14 ] 15 16 17 ... 264


в качестве другого способа активизации базы данных можно назвать следующий: достаточно указать имя базы данных в командной строке вызова клиента.

% mysql samp cLb

Это обычный способ активизации базы данных. Перед именем базы данных можно задать другие инициализирующие параметры. Например, следующие две команды позволят подключиться к базе данных samp db на локальном узле и на узле pit-viper.snake.net.

% mysql -U paul -р samp db

% mysql -h pit-xper. snake. net -u paul -p san5> db

Bo всех последующих примерах предполагается, что при запуске mysql производится активизация базы данных samp db в командной строке.

Создание таблиц

В этом разделе мы создадим таблицы, составляющие базу данных samp db. Сначала рассмотрим таблицы из проекта Историческая Лига . Затем наступит очередь таблиц проекта Учет успеваемости . Мы сейчас находимся в той точке повествования, с которой во многих книгах начинаются рассуждения об анализе и проектировании, диаграммах сущность-связь , процедурах нормализации. В такой последовательности изложения есть рациональное зерно, но я предлагаю прежде всего задуматься над тем, как будет выглядеть наща база данных: что будут содержать таблицы и как отображать нащи данные.

Есть масса вариантов представления данных. В зависимости от требований, предъявляемых к приложениям, и от предназначения данных, одни и те же данные можно представлять различными способами.

Таблицы проекта Историческая Лига

Набор таблиц для проекта Историческая Лига достаточно прост.

Таблица president. Содержит данные о президентах США. Это нужно для викторины в режиме on-line на Web-узле (интерактивный аналог напечатанной викторины, которая появляется в детском разделе газеты, издаваемой Исторической Лигой ).

Таблица member. Содержит текущую информацию о каждом члене Исторической Лиги . Она предназначена для печатной и интерактивной версии списка членов, а также автоматической рассылки напоминаний о продлении членства.

Таблица president

Таблица president проще, поэтому начнем с нее. Она содержит описание основных биографических данных из жизни всех президентов США.



Имя. Имена можно хранить различными способами. Например, для хранения всего имени и фамилии можно воспользоваться одним столбцом. А можно для хранения имени и фамилии создать отдельные столбцы. Конечно же, проще воспользоваться первым методом, но это создаст определенные проблемы в будущем.

Если в такой столбец сначала вводится имя, а затем фамилия, то сортировка по фамилии будет затруднена.

Если ввод производится в обратном порядке, то отображение имени и фамилии, следующими после имени, будет затруднено.

Выборка по именам будет затруднена. Например, при поиске конкретной фамилии можно использовать шаблон. Это менее эффективно и значительно медленнее, чем производить поиск непосредственно по фамилии.

В таблице member ДЛЯ обхода этих Офаничений имя и фамилию нужно будет хранить в отдельных столбцах.

Столбец имени также будет содержать отчество или инициал. Этс не зафуднит работу с этим столбцом, так как сортировать по отчеству нет необходимости. Отображение будет иметь вполне приемлемый вид независимо от формата, в котором оно будет произво литься Bush, George W. или George W. Bush, . Отчество следуе сразу же за именем.

Существует еше одно небольшое затруднение. Всего один прези дент (Jimmy Carter) имеет окончание Jr. в конце имени. Что эт( значит? В зависимости от формата отображения имя президент будет иметь вид James Е. Carter, Jr. или Carter, James Е., Jr Суффикс Jr. не ассоциируется ни с именем, ни с фамилией. По этому для хранения его создадим еще одно поле. Вот вам ярки пример того, как даже одно значение может создать проблемы пр проектировании сфуктуры базы данных. Отсюда видно, наскольк важно иметь как можно более полную информацию о данных, которыми придется работать на этапе создания базы данных. И СУБД MySQL позволяет менять сфуктуру баз данных во время t использования. Это не катасфофа, но этого нужно избегать.

Место рождения. Аналогично имени и фамилии, эти данные мох но хранить как вместе, так и отдельно. Проще использовать од1 столбец. Но и в этом случае раздельное хранение позволит вам д дать многие вещи, которые в противном случае будут существен t затруднены. Например, будет проще сделать выборку по президс! там, родившимся в каком-то одном штате, если город и штат хр.-нятся раздельно.

Даты рождения н смерти. Единственной проблемой в этом случае является то, что нет даты смерти, если президент еще жив. СУБД MySQL имеет механизм присвоения пустого значения null, озна-



чаюшее, что значения нет. Это значение будем использовать для обозначения в настоящее время жив .

Таблица member

Таблица member предназначена для фиксации членства в Исторической Лиге . Она аналогична таблице president в том смысле, что в ней хранится вся основная описательная информация для одного человека. При этом каждая запись таблицы member хранит больще столбцов.

Имя. В этой таблице мы будем хранить имена подобно тому, как это сделано в таблице president в трех отдельных столбцах: фамилия, имя (и при наличии отчество), суффикс.

Идентификационный номер. Это уникальное значение, присваиваемое каждому новому члену. Историческая Лига никогда раньше не использовала идентификационных номеров для регистрации своих членов. Теперь это поможет систематизировать записи. (Я предвижу, как читатель в дальнейшем будет расширять использование СУБД MySQL. Это произойдет тогда, когда читатель начнет пользоваться информацией, хранящейся в базе данных. Когда это произойдет, вы увидите, что для ссылки на имена членов из других вновь созданных таблиц будет удобнее использовать идентификационные номера, хранящиеся в таблице member.)

Срок завершения полномочий. Члены организации должны периодически возобновлять свое членство. В некоторых приложениях может представлять интерес дата самого последнего возобновления членства. Но это не имеет отношения к случаю Исторической Лиги , где членство может быть возобновлено на определенное количество лет (обычно один, два, три года или пять лет), и дата последнего возобновления не подскажет вам, когда было последнее возобновление. Кроме того, Историческая Лига имеет институт так называемого пожизненного членства. Пожизненное членство можно отобразить какой-то достаточно дальней датой, но очевидно, что значение null больше подойдет для этой цели. Значение нет значения больше соответствует никогда не завершается .

Адрес электронной почты. Это облегчит общение между членами Исторической Лиги , имеющими электронную почту. Для секретаря это упростит рассылку напоминаний о возобновлении членства. Отпадет необходимость ходить на почту, да это и обойдется дешевле. Электронной почтой можно воспользоваться и для того, чтобы разослать членам общества их учетные записи с просьбой обновить их в случае, если появились какие-либо изменения в адресе, фамилии и т. д.



1 ... 11 12 13 [ 14 ] 15 16 17 ... 264

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика