Я создаю приложение Laravel, которое имеет «списки». Эти списки могут быть такими, как лодки, самолеты и автомобили; каждый со своими конкретными полями.Архитектура базы данных: множественные отношения типов
У меня также будет таблица изображений, которая должна относиться к каждому типу листинга и таблице пользователей, которая должна отображаться для каждого типа листинга. Я пытаюсь определить лучший способ сопоставить каждый тип листинга с images
и users
.
Один из способов я думал, что делать это было иметь отдельную boats
, planes
и automobiles
таблицу с их конкретными полями, а затем с конкретным boat_images
plane_images
и automobile_images
таблицей для сопоставления каждого соответствующего типа. Но тогда отношение каждого типа к пользователю было бы немного сложнее.
Я не думаю, что одна гигантская таблица листинга со всеми полями, которые я когда-либо использовал через эти 3 (которые могли бы вырасти в дальнейшем), будет иметь смысл --- и я также не считаю, что у меня есть общее поле метаданных который имеет объект JSON, полный спецификаций для каждого списка, будет хорошо работать, когда я хочу иметь базу данных, доступную для поиска.
Я знаю pivot tables, но я пытаюсь понять общую архитектуру здесь. Любая помощь будет принята с благодарностью. Благодаря!
Вам не нужно разделять таблицу изображений. Таблица изображений может быть одной таблицей, которая может хранить изображения ваших лодок, самолетов и автомобилей. Laravel может справиться с этим. См. Http://laravel.com/docs/5.0/eloquent#polymorphic-relations, чтобы увидеть пример кода и идеи. – MaXi32