0

Мне нужно создать простую базу данных, но все сложнее, чем кажется. Очень просто входить в циклические отношения.Дизайн базы данных user-categories-pictures (циклические отношения ?!)

  • Пользователь может выбрать одну или несколько категорий (например, животные, люди, пейзаж, природа, аннотация и т.д.)
  • эту же категорию можно выбрать другими пользователями (пп отношения между пользователями и категориями)
  • Картинки могут быть присвоены одной или нескольким категориям, поэтому категория может иметь одну или несколько картин (nn отношения между картинками и категориями)
  • Теперь пришло время историзировать просмотренные изображения, поэтому я думаю, что есть еще одна связь между картинками и пользователями, что также nn, так как пользователь мог просматривать одну или несколько изображений, и одно и то же изображение можно было просматривать n пользователями

< Пользователи ---> категории < ---> фотографии

< Пользователи ---> Фотографии

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

enter image description here

+0

Что значит «историзировать»? –

+1

Что вы думаете о «циклических отношениях»? Почему вы думаете, что это проблема? Где он здесь? – philipxy

+0

@GustvandeWal Historicize как «хранить информацию со временем» – user6416575

ответ

0

Я не вижу здесь проблемы.

Если все отношения были использованы для запроса, вероятно, это будет тип «Покажите мне фотографии в категориях этого пользователя, которые они еще не просмотрели», что кажется разумным бизнес-кейсом.

Таким образом, у вас будет запрос, который объединяет пользователей в категории для изображения и проверяет отсутствие записи в таблице «user_picutres_viewed» для этого изображения и пользователя.

Не проблема.