SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 03.05.2008 14:50:58

roninp
Участник
Зарегистрирован: 03.05.2008
Сообщений: 2

Как правильно создать БД?

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

Неактивен

 

#2 03.05.2008 15:09:36

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Как правильно создать БД?

Те варианты, которые Вы привели - это не нормальная форма (нормальная - термин), хотя во многих случаях имеет право на существование (и иногда лучше с точки зрения производительности).

Есть еще 2 пути:
1. если количество жанров фиксировано, то использовать тип SET http://dev.mysql.com/doc/refman/5.0/en/set.html
2. создать таблицу genre, таблицу films и таблицу filmgenre. Последняя будет хранить пары id-ников из таблиц films и genre. Таким образом осуществляется связь многие ко многим в реляционных БД. Плюс в том, что легко искать фильмы по жанру, минус в том, что все такие запросы будут содержать JOIN.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson