У меня есть конкретный проект. Я пытаюсь определить наиболее эффективный и логичный способ настройки моих моделей в моем приложении. Здесь должны присутствовать следующие игроки: Продавцы, Товарные запасы и продукты. Вот расстройство того, что каждый элемент должен быть в состоянии вернуться в некотором роде:Структура моделирования данных - рельсы
инвентаризаций: магазин ID Продукты и связанные с ними детали (цена, наименование, марка, Детали, код продукта)
Вендоры: Магазин ID, местоположение, имя
Продукты: Цена, Название, марка, Деталь, Код товара
Очевидно, что существует много дублирования в этой схеме между продуктами и товарно-материальными запасами. Моя проблема заключается в том, что, хотя у продавцов могут быть похожие элементы в своих запасах, цена всегда будет отличаться. Поэтому я не могу просто связать модели по коду продукта. Поскольку у большинства вендоров будут одни и те же продукты, если я буду моделировать запасы магазинов со всей информацией о продукте, не будет ли это много дублирования? Также возможно, что мне не нужно иметь отдельную модель для поставщиков, и я могу просто попытаться сохранить все запасы, но я потерян. Помоги пожалуйста?! Заранее спасибо.
EDIT:
Вот моя модель структуры, хотя я не уверен, что это идеальный вариант.
class Vendor < ActiveRecord::Base
attr_accessible :name, :address
has_one :inventory
has_many :products, through: :inventories
end
class Inventory < ActiveRecord::Base
has_many :products
belongs_to :vendor
end
class Product < ActiveRecord::Base
attr_accessible :upc, :brand, :product, :details, :price
has_many :inventories
has_many :vendors, through: :inventories
end
вы должны вставить образец кода модели, было бы легче увидеть проблему.Тем не менее, из того, что я понимаю, поставщики и продукты имеют отношение много к большому числу да? что означает, что будет таблица соединений, вы можете просто поместить цену в таблицу соединений, таким образом, не иметь повторяющихся продуктов и уникальных цен для каждого поставщика. в зависимости от ситуации, вы могли бы, вероятно, покончить с инвентарем, ну или просто вызвать инвентаризацию таблицы соединений. надеюсь, что это помогает – Saifis
У меня пока нет образца кода. Я ждал, чтобы что-то генерировать, пока я не понял проблему более концептуально. Спасибо за подсказку о таблице соединений. Я сделал несколько поисков и нашел хорошую документацию об ассоциациях ActiveRecord. Посмотрим, куда это приведет. – settheline