Поскольку $job::find(2)->despatches
возвращает коллекцию, вы должны использовать pluck()
:
$job::find(2)->despatches->pluck('qty')
Мне кажется, что существует несколько решений для проектирования, которые будут зависеть от того, как загружаются исходные данные и требуется ли отслеживать все периодические изменения (в этом случае вашей модели потребуется поддержка datetime).
Могут быть различные варианты, но я бы рассмотрел схему звездной схемы, которая повлекла бы за собой создание ваших таблиц широких и описательных измерений для связи с отношением PKey - FKey к центральной таблице фактов, которая записывает все ваши транзакции (в вашем случае это будут различные «рекламные» цены, которые нужно отслеживать).
В вашем примере, основанном на моем понимании, я бы выбрал дизайн схемы в виде звезды с измерениями для товара, brandGroup и любых других необходимых измерений вместе с таблицей фактов для отслеживания запасов и другой таблицей фактов для отслеживания обновлений цен. Разрабатывая таблицы в соответствии с размерной моделью, мы можем проводить все виды анализа на этом новом складе.
Что касается конкретно вашей таблицы «CigGroup», я бы создал таблицу для «Предметов» с наиболее детализированным SKU / товаром в продаже, который затем можно структурировать в иерархию с использованием атрибутов или новых столбцов в таблице.