Я использую sailsJS для создания REST API, который использует преимущества чертежей.Полиморфные ассоциации с SailsJS
My Design имеет много ресурсов, в которых один является ресурс активов:
Asset (id, type, owner_type, owner_id, url);
Это будет действовать в качестве отправной точки для размещения нескольких активов для любого другого ресурса в системе.
ie.
Ресурс пользователя может содержать несколько изображений и видео. Все эти записи хранятся в ресурсе ресурсов.
Asset (id, type, owner_type, owner_id, url);
Asset (1, 'image', 'User', 1, 'http://path.to.image.com/abc.jpg');
Asset (2, 'video', 'User', 1, 'https://youtube.com/sdasd');
Asset (3, 'image', 'BlogPost', 20, 'http://path.to.image.com/blogpost.jpg');
Так в идеале, когда я делаю Получить пользователя по ID или получить все пользователи, я бы предпочел, чтобы получить соответствующие средства для этого объекта.
Его можно подготовить ответ, если я реализую два метода для GetOne и GetAll, но при потреблении чертежей его немного размыто.
Существует также некоторые официальные документы здесь, которые могут помочь: HTTP://sailsjs.org/#!/documentation/concepts/ORM/Associations/OnetoMany.html – HeadCode
@ Evilsanta well owner_id не всегда является пользователем, он изменится. Таким образом, в основном 1 вариант использования может представлять собой активы, принадлежащие Пользователю, а для другого это могут быть активы, принадлежащие блоге. Файл owner_type сохранит тип модели (User, BlogPost) –
@GayanL да, я боюсь, вы можете выбрать только один, чтобы заполнить коллекцию. Мой пример позволяет вам получать активы пользователя, но вы не сможете делать Blogpost.populate. Извините за это разочарование, но вы можете вручную сделать это с помощью двухэтапного процесса. Сообщите мне, нужна ли вам дополнительная помощь. – Evilsanta