Здравствуйте!
Я делаю БД для музыкальной коллекции, суть такова. Есть следующие таблицы (напишу на псевдокоде):
Исполнитель {
idИсполнителя,
Название
};
Запись {
idЗаписи,
idИсполнителя,
Название,
Продолжительность
};
Альбом {
idАльбома,
Название,
ГодВыпуска
};
СодержаниеАльбома {
idАльбома,
idЗаписи
};
Но при таком раскладе, например, чтобы получить все альбомы заданного исполнителя, придется выполнить достаточно страшный запрос.
Посему возникают мысли включить поле idИсполнителя в таблицу «Альбом». В этом случае (только ИМХО, ибо не специалист я в этом деле) конкретный запрос выполнится быстрее и легче. Но не будет ли это ошибкой проектирования? Излишняя инфа и всё такое... Хотя, в то же время на практике в одном альбоме попадаются песни разных исполнителей - на то и теги track artist и album artist предусмотрены в том же vorbis...
Хочется услышать мнение экспертов =)