Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2013, 17:44   #1
Хару Атари
 
Регистрация: 16.11.2012
Сообщений: 4
По умолчанию Как хранить иерархические данные в реляционной бд?

Добрый день.
У меня возникла проблема с проектированием БД. Пожалуйста, помогите разобраться.

Есть три объекта: сериал, озвучка, серия.

В бд хранится информация о сериалах.
У каждого сериала есть ссылки для онлайн просмотра. Они разделены по автору озвучки. Т.е. сериал может иметь несколько озвучек.
Каждая озвучка в свою очередь содержит ссылки на разные видеохостинги.

Сериал:
Содержит некоторые поля. К примеру: id, name, category.
Содержит несколько озвучек.

Озвучка:
Содержит некоторые поля. К примеру: id, author.
Содержит некоторые серии.

Серия:
Содержит некоторые поля. К примеру: id и ссылки на видеохостинги (несколько).

Собственно вопрос: Как все это рациональней хранить в БД?

Есть пара идей:
1. Создать три таблицы со связями один ко многим. При этом есть два варианта: в таблице "серия" разные ссылки хранить в разных столбцах (каждый столбец под свой хостинг), либо в поле text разделять их символом переноса строк.
2. Еще была идея при добавлении сериала формировать массив типа следующего:
Код:
{
dub1: {
    episode1: {
        host1, host2, host3
    },
    episode2: {
        host1, host2
    },
},
dub2: {
    episode1: {
        host1
    },
    episode2: {
        host1, host2
    },
},
}
потом сериализовать его и пихать в поле в таблице с сериалами.

Плюс первого вариантав том, что каждая сущность хранится в своей таблице, что очень хорошо. Но из минусов: сложный запрос на выборку. При обновлении записи, много мороки с проверкой, какие записи были изменены.

Плюс второго варианта: простота бд. Минус: не уверен, что так будет правильно.

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

Скажите, как будет лучше это сделать? Заранее благодарен.
Хару Атари вне форума Ответить с цитированием
Старый 24.03.2013, 17:46   #2
Хару Атари
 
Регистрация: 16.11.2012
Сообщений: 4
По умолчанию

Да, хотел сразу сказать, что возможности поставить какую-нибудь субд кроме mysql просто нет.
Хару Атари вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как хранить музыку? hon Свободное общение 16 09.01.2012 23:39
как хранить изображение DarkMage Win Api 3 24.12.2011 15:41
где хранить данные принято? yuran111 Общие вопросы Delphi 36 12.05.2011 00:23
как и где хранить изображения? kate158 БД в Delphi 9 20.08.2010 16:37