Определения физических таблиц для базы, данных CD
Таблица 2-2. Определения физических таблиц для базы, данных CD
Таблица |
Колонка |
Тип данных |
Примечания |
||
CD |
CDId |
INT |
primary key |
||
|
CDTitle |
TEXT(50) |
|
||
Artist |
Artistld |
INT |
primary key |
||
|
ArtistName |
TEXT(50) |
|
||
Song |
Songld |
INT |
primary key |
||
|
SongName |
TEXT(50) |
|
||
RecordLabel |
RecordLabelld |
INT |
primary key |
||
|
RecordLabelName |
TEXT(50) |
primary key |
||
Для остальных колонок установлен тип TEXT с длиной 50. Такое определение годится и для MySQL, и для mSQL. Для MySQL, впрочем, лучше было бы выбрать VARCHAR, но это несущественно для нашего примера. Выбор правильного типа данных для колонок очень важен, но мы не будем сейчас на этом останавливаться, поскольку не касались еще типов данных, поддерживаемых MySQL и mSQL.
Теперь у нас есть отправная точка для физической схемы. Мы еще не перевели отношения в физическую модель данных. Как указывалось ранее, после уточнения логической модели у вас должны остаться отношения типа «один-к-одному» и «один-ко-многим» - отношения «М-к-М» разрешаются через таблицы-связки. Отношения моделируются путем добавления внешних ключей к одной из участвующих в них таблиц. Внешний ключ - это уникальный идентификатор или первичный ключ таблицы на другом конце отношения.
Позднее мы коснемся типов данных, поддерживаемых MySQL и mSQL. В каждой из них свои правила относительно того, какие типы данных можно индексировать. Ни в одной из них, например, нельзя индексировать поля типа TEXT. Поэтому недопустимо иметь колонку первичного ключа типа TEXT.
Чаще всего отношение имеет тип «1-к-М». Ему соответствует первичный ключ со стороны «1», помещенный в таблицу на стороне «многие». В нашем примере это означает, что нужно сделать следующее:
- Поместить колонку RecordLabelId в таблицу CD.
- Поместить колонку CDId в таблицу Song.
- Поместить колонку Artistic! в таблицу Song. Полученная схема показана в таблице 2-3.