Да, еще один вопрос с базой данных с аналогией пиццы. Те, которые я видел, похоже, не нажимают вправо, поэтому здесь идет.Рекомендации по проектированию базы данных в Rails, пицце, топпинге и заказе
Мне нужно иметь возможность заказать несколько пицц с любым количеством начинок в одном заказе. Его основной шаблон корзины покупок, но наполнители затрудняют его реализацию.
Базовые модели,
class Pizza < ActiveRecord::Base
has_and_belongs_to_many :orders
has_and_belongs_to_many :toppings
end
class Topping < ActiveRecord::Base
has_and_belongs_to_many :pizzas
end
Пицца и Топпинг таблица служат в качестве держателя для информации пиццы и долив типов, которые могут быть заказаны.
class OrdersPizzas < ActiveRecord::Base
belongs_to :order
belongs_to :pizza
end
class PizzasToppings < ActiveRecord::Base
belongs_to :topping
belongs_to :pizza
end
class Order < ActiveRecord::Base
has_and_belongs_to_many :pizzas
end
[Добавлено]
Некоторые уточнения, дизайн база данных предназначена для торгового приложения, так что возможность установки «меню» на администратора, и пользователи в состоянии видеть меню , и порядок от него является обязательным.
Эта операция выполняется в два этапа: сначала вам нужно создать меню, создав пиццу и начинку, и связав их, не все пиццы могут иметь все начинки.
сыр Пицца может иметь дополнительные оливки, а также дополнительный сыр как начинку
Peperoni Пицца может иметь только дополнительный сыр для начинки
Шаг два фактически размещения заказов в соответствии с введенным данных, таким образом, все многие маны.
Теперь вопрос, после ввода данных выше, я хочу, чтобы оформить заказ
Peperoni Пицца с дополнительным сыром
Cheeze Пицца с дополнительными оливок
в одном порядок, как он должен быть разработан?
Все, что я могу думать о том, чтобы добавить
class OrdersPizzasToppings < ActiveRecord::Base
belongs_to :orders_pizzas
belongs_to :topping
end
так что я могу определить, какая пицца имеет начинку, но это не похоже на правильный путь.
Не работает ли это? –
'Pizza' не может принадлежать более чем 1' Order', не так ли? – Zabba
мой вопрос был поставлен неправильно, уточнили. – Saifis