Книга: Основы программирования в Linux

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

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

Сейчас вы должны определить реальную структуру таблиц. Начните с основной таблицы — таблицы компакт-дисков (cd), в которой хранится большая часть информации. Вам нужно сохранять идентификационный номер (id) компакт-диска, номер каталога, название и, возможно, ваши собственные заметки. Вам также понадобится ID-номер из таблицы исполнителей, чтобы знать, какой исполнитель выпустил альбом.

Таблица исполнителей (artist) очень проста; сохраните в ней только имя исполнителя и уникальный идентификационный номер (id) исполнителя. Таблица дорожек (track) также чрезвычайно проста; вам нужен только ID компакт-диска, чтобы знать, к какому CD относится дорожка, номер дорожки и название дорожки.

Сначала таблица компакт-диска:

CREATE TABLE cd (
 id INTEGER AUTO_INCREMENT NOT NULL PRIMARY KEY,
 title VARCHAR(70) NOT NULL,
 artist_id INTEGER NOT NULL,
 catalogue VARCHAR(30) NOT NULL,
 notes VARCHAR(100)

Приведенный программный код создает таблицу с именем cd со следующими столбцами:

? столбец id, содержащий целое число, которое автоматически увеличивается и представляет собой первичный ключ таблицы;

? столбец title длиной до 70 символов;

? столбец artist_id — целое число, которое будет использоваться в таблице artist;

? столбец catalogue — номер длиной до 30 символов;

? столбец notes до 100 символов.

Учтите, что только столбец notes может быть NULL; у всех остальных должны быть значения.

Теперь таблица artist:

CREATE TABLE artist (
 id INTEGER AUTO_INCREMENT NOT NULL PRIMARY KEY,
 name VARCHAR(100) NOT NULL

И снова у вас столбец id и еще один для имени исполнителя.

И наконец, таблица track:

CREATE TABLE track (
 cd_id INTEGER NOT NULL,
 track_id INTEGER NOT NULL,
 title VARCHAR(70),
 PRIMARY KEY(cd_id, track_id)

Обратите внимание на то, что на этот раз вы объявили первичный ключ несколько иначе. Таблица track необычна тем, что ID каждого компакт-диска будет появляться несколько раз, ID любой заданной дорожки, скажем, дорожки 1, также будет появляться несколько раз в разных компакт-дисках. Но их комбинация всегда будет уникальной, поэтому объявите ваш первичный ключ как комбинацию двух столбцов. Такой ключ называют составным, поскольку он состоит из нескольких столбцов, участвующих в комбинации.

Сохраните эти SQL-операторы в текущем каталоге, в файле, названном create_tables.sql, и затем двигайтесь дальше и создайте базу данных и таблицы в ней. Готовый пример сценария содержит дополнительные строки, по умолчанию помеченные как комментарий, в них удаляются эти таблицы, если они уже существуют.

$ mysql -u rick -р
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
mysql> use blpcd;
Database changed
mysql> . create_tables.sql
Query OK, 0 rows affected (6.04 sec)
Query OK, 0 rows affected (0.10 sec)
Query OK, 0 rows affected (0.00. sec)
mysql>

Обратите внимание на применение команды . для получения ввода из файла create_tables.sql.

Вы могли бы создать таблицы, выполнив операторы SQL или просто набирая данные с помощью обозревателя запросов MySQL Query Browser.

После того как таблицы созданы, их можно просмотреть, используя MySQL Administrator (рис. 8.9), в котором вы проверяете таблицу индексов базы данных blpcd (или схему, если вы предпочитаете этот термин).

Выбрав редактирование таблицы (щелчок правой кнопкой мыши или двойной щелчок мышью имени таблицы на вкладке Tables (Таблицы)) позволит увидеть дополнительные сведения о столбцах (рис. 8.10).


Рис. 8.9


Рис. 8.10 

Вы заметили два значка ключа рядом со столбцами cd_id и track_id на рис. 8.10? Это означает, что они оба участвуют в формировании составного первичного ключа. Разрешив названию дорожки быть равным NULL (условие NOT NULL не проверяется), вы допускаете наличие нетипичной, но иногда встречающейся дорожки компакт-диска, не имеющей названия.

Оглавление книги


Генерация: 0.060. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз