Hola gente, Tengo un problema que tiene que ver con el diseño de la base de datos más que con Rails, pero como vengo algo oxidado con la práctica de programar quisiera que me aconsejen cual sería la mejor alternativa para tomar un impulso y seguir con el desarrollo (ya que estoy bastante estancado). Resulta que es un sistema de ventas de productos. Tengo un maestro de productos, una tabla de órdenes y una tabla que indica cuales productos se compraron para tales órdenes.
El modelo que hice es el que sigue: Las relaciones en Rails son las siguientes: class Entry < ActiveRecord::Base belongs_to :order belongs_to :product end class Order < ActiveRecord::Base has_many :entries has_many :products, :through => :entries, :source => :product end class Product < ActiveRecord::Base has_many :entries has_many :orders, :through => :entries, :source => :order end Las preguntas que tengo son las siguientes: 1. La tabla nexo entre la relación muchos a muchos la quise enriquecer agregando una columna de ítems_sold, para que cuando se agregue un producto nuevo automáticamente este campo se actualice. Por ejemplo si ejecutara entry << producto no quisiera que me agregue un registro nuevo a entries sin antes verificar si el mismo producto fue agregado para la misma orden y aumentar en caso que si lo fuera. Ahora, qué código tendré que escribir? Es un callback? Me estoy complicando demasiado? 2. La misma tabla del punto anterior la llame entries, como entradas a una factura de venta. Cada registro sería un detalle de cual y cuantos ítems de cada producto se vendieron pero no se qué tan apropiado es el nombre que le puse. 3. Se puede prescindir de una clave primaria siempre y cuando la relación fuera has_and_belongs_to_many, no es cierto? En cuyo caso debería agregar una clave primaria El tema es que me pareció ilógico agregar un entry_id que puede aumentar exponencialmente y no tiene mucho sentido como identificador. Eso es todo pero creo que hay mucho espacio para la mejora fuera de estas observaciones. Les pido ayuda porque evidentemente me estoy ahogando en un vaso de agua. Gracias.
<<image003.png>>
_______________________________________________ Ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
