Задать вопрос
alestro
@alestro

Как лучше организовать связи между таблицами?

Есть 3 таблицы: Games (image_id, video_id), Images (game_id) и Videos (image_id, game_id).
У одной игры может быть 0 или 1 постер (связь по image_id), но в тоже время у игры может >= 0 скриншотов (тоже таблица images, связь по game_id). Аналогичная ситуация с игрой и видео, у игры может быть только 0 или 1 трейлер, но >= 0 видиозаписей. В свою очередь у любого видео может быть 0 или 1 постер (таблица так же images). Подобный подход вызывает сложности со вставкой связей через ORM и невозможностью удаления записей без предварительного обнуления связи, т.к. игра ссылается на изображение, которое ссылается на ту же игру (аналогичная ситуация для связи игра - видео).
Думаю поступить следующим образом: убрать image_id и video_id из Games, а в Images добавить флаг is_poster (1 или 0 соответственно), но как быть с тем, что одна игра может иметь только один постер.
Или создать отдельно таблицу Posters и Trailers, которые дублируют все поля Images и Videos соответственно, а в Games image_id и video_id заменить на poster_id и trailer_id
  • Вопрос задан
  • 55 просмотров
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы