2016-07-15 4 views
0

У меня очень сложное время, чтобы создать отношения модели/стола для проекта хобби, над которым я работаю. У меня есть заказ, у заказа будет один или несколько пакетов, каждая упаковка будет иметь один или несколько продуктов, каждый продукт будет иметь для одной области, которой он назначен. В одном и том же пакете может быть несколько одинаковых продуктов, но каждая из них будет иметь другую область и другое количество. Я пытаюсь определить, как устанавливаются отношения.Таблицы для заказов

В конце дня мне нужно запустить отчет, в котором будут указаны данные заказа, перечисляющие все пакеты в заказе и все продукты и области, содержащиеся в каждом пакете. Мне также нужен отчет, который показывает мне порядок и сумму всех величин для каждого продукта в заказе (на нем нет пакетов). Я использую Rails ActiveRecord. Я думаю, что будет пара полиморфных отношений, но я изо всех сил пытаюсь идентифицировать их, поскольку это вне моего простого «отношения все-ко-многим». =)

Не могли бы вы помочь мне соединить эти столы разумным образом? Я искал аналогичные схемы схемы без особого успеха, и я работал над этим уже пару дней, и все начинает работать вместе.

enter image description here

Это основы того, что я имею в виду для отношений, но я не уверен, что модели Rails будет выглядеть. Кажется, что каждое отношение от заказов вниз является полиморфным. (?) Как я могу вложить эти отношения в рельсы?

Я учусь и, как многие вещи, кажется простым, но становится намного сложнее, когда вы начинаете писать код для него. Я на правильном пути? Спасибо за вашу помощь.

+0

Полиморфный, вы имеете в виду, Order_Package_ * X * является * X *? Хотя это типичное общее использование термина, в ActiveRecord ["с полиморфными ассоциациями, модель может принадлежать более чем одной другой модели в одной ассоциации"] (http://guides.rubyonrails.org/association_basics.html # полиморфные-ассоциации). – philipxy

ответ

0

Я думаю, вам нужны некоторые таблицы JOIN.

Order может иметь много Products; a Product может быть добавлен ко многим Orders.

В этом случае у вас будет таблица JOIN, которая будет иметь два столбца: первичные ключи для Order и Product. Эти два вместе были бы составным первичным ключом.

Я не знаю, что такое Area означает в вашей схеме, но, возможно, это предложение нарушит ментальную ловушку для вас.

Смежные вопросы