Как правильно хранить в БД похожие сущности?

Mar 25, 2010 14:21

На сайте, который я сейчас делаю, есть такие сущности как "канал" и "музыкальный канал". Каждый канал имеет своё название. Для каждого канала имеется плейлист, который создаётся с помощью некоего критерия. Для обычного канала - это жанр фильма (комедия, боевик, ...). Для музыкального канала - жанр музыки видеоклипа (рок, поп, ...). ID жанра, на основе которого формируется канал, хранится в таблице каналов.
Жанры фильма и жанры музыки хранятся в разных таблицах.
Как правильно хранить каналы в БД?
Если я буду хранить их в разных таблицах, то придётся продублировать практически весь код работы с каналом и плейлистом, а также придётся создавать сущность и таблицу "музыкальный плейлист".
Если я в одной таблице буду хранить и обычные, и музыкальные каналы, то придётся делать не нормализованную таблицу и хранить там сразу "жанр фильма" и "жанр музыки". Но кода, судя по всему, будет меньше, поэтому этот вариант мне кажется более предпочтительным.
Но может быть есть какой-нибудь способ, лишённый любых из этих недостатков?

x-post: ru_case
Previous post Next post
Up