Я создаю схему для веб-сайта, на котором будут отображаться изображения и тип объекта post
, к которому может относиться изображение. Таким образом, моя база данных изображений может выглядеть так:Рекомендуемый подход к базе данных для галерей и изображений сайта
# 'Image' table
----------------
id
name
url
post_id
Затем для каждого сообщения я могу захватить его изображение. Но:
- два сообщения не могут делать изображение
- , если добавить еще один тип объекта из
page
, я должен был бы гарантировать, что они никогда не имеют одинаковуюid
.
Поэтому я считаю, что хороший старт - это просто удалить поле post_id
с изображениями, как больше проблем, чем своих достоинств. Какое наилучшее решение для этой проблемы manyToMany? На данный момент я имею в виду, имеющий в период между столом:
# 'Gallery' pivot table
------------------------
id
object_type [post or page]
object_id
image_id
Теперь posts
и pages
может иметь несколько images
. Я просто пробиваю это, чтобы захватить все связанные изображения для типа объекта. Это правильно? Если это имеет значение, я использую рамки Laravel. Я создаю довольно большое приложение и сознаю, что, если я ошибаюсь на ранней стадии, это может действительно укусить меня позже.
Я работал бы с полиморфными отношениями, чтобы у вас была таблица с обоими сообщениями и страницами. то достаточно простого внешнего ключа на изображении. Я не знаю, как выглядит ваша страница и модель сообщений. Являются ли они похожими в некоторых частях? или совсем другое? – lukasgeiter