22.04.2014 Views

php_mysql_dreamweaver_mx_2004 разработка web сайтов.pdf

php_mysql_dreamweaver_mx_2004 разработка web сайтов.pdf

php_mysql_dreamweaver_mx_2004 разработка web сайтов.pdf

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

136 Часть II. Наши первые серверные программы<br />

Напрашивается вот такое решение. А что если хранить в таблице — списке<br />

статей не само название категории, а ссылку на соответствующую запись<br />

таблицы — списка категорий? Благо таблица — список категорий имеет<br />

суррогатный ключевой индекс, а значит, мы можем однозначно указать на<br />

нужную нам запись-категорию. Возможно ли такое?<br />

Конечно, возможно. Посмотрим на рис. 6.6. Там изображена таблица —<br />

список статей, в которой создано новое числовое поле catid (поле category<br />

удалено). Это поле хранит значение поля id таблицы — списка категорий,<br />

соответствующее нужной записи-категории. При обработке таблицы — списка<br />

статей СУБД извлечет эти значения, найдет соответствующие записи<br />

в таблице — списке категорий и выведет значения полей name этих записей<br />

(названия категорий) на экран.<br />

date<br />

12.08.<strong>2004</strong><br />

24.09.<strong>2004</strong><br />

30.10.<strong>2004</strong><br />

10.07.<strong>2004</strong><br />

author<br />

Криворукий, Ю.<br />

Сусанин-мл., И.<br />

СуПеРхАкЕр<br />

Дуболом, Е.<br />

name<br />

Тяп-ляп\Л/еЬ-дизайнер<br />

Путеводитель по всемирной паутине<br />

Как взломать компьютер с помощью кувалды<br />

К вопросу о прочности модемов<br />

catid<br />

1<br />

1<br />

5<br />

1<br />

1<br />

1<br />

1<br />

name<br />

| file<br />

id<br />

Интернет<br />

Система<br />

Да<br />

Нет<br />

1<br />

5<br />

Ч<br />

Офис<br />

Программирование<br />

Интернет<br />

Да<br />

Да<br />

Нет<br />

2<br />

3<br />

4<br />

Рис. 6.6. Таблица — список статей, связанная с таблицей — списком категорий<br />

Фактически мы создали связь между таблицами нашей базы данных, при<br />

которой таблица — список статей обращается за дополнительными данными<br />

к таблице — списку категорий. Таким образом мы убили всех зайцев: наша<br />

база данных уменьшилась в размерах, поля каждой записи содержат только<br />

уникальные для данной записи значения, да и таблица — список категорий<br />

оказалась у дел. А чтобы изменить название какой-либо категории, достаточно<br />

исправить значение поля name таблицы — списка категорий.<br />

Профессиональные разработчики баз данных называют первичной или родительской<br />

таблицу, содержащую дополнительные данные, и вторичной или<br />

дочерней — таблицу, обращающуюся за дополнительными данными к первичной<br />

таблице. Значит, в нашем случае список статей — вторичная таблица,<br />

а список категорий — первичная. Кстати, связь, при которой на одну<br />

запись первичной таблицы могут ссылаться несколько записей вторичной<br />

таблицы, называется связью "один-ко-многим".

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!