No puedo envolver mi cabeza alrededor de esto.
Tengo un producto sobre el que un usuario puede hacer una oferta.
Un usuario puede hacer una oferta en muchos productos, y un producto puede tener muchas ofertas en un momento dado (piense en eBay pero varias personas envían ofertas separadas)
¿Necesito una relación de muchos a muchos para una migración de ofertas, por ejemplo, que haga referencia tanto al producto como al usuario con campos asociados en la base de datos?
para mi deberia ser
User->hasMany('App\Offers') Product->hasMany('App\Offers')
en ofertas
Offer->belongsTo('App\Users') Offer->belongsTo('App\Product')
Obviamente, esto no usa muchos a muchos, pero debido a que tengo tres modelos con los que estoy interactuando, ¿cómo es mejor modelar esto?
debe crear la tabla dinámica product_offers.
Modelo de oferta:
class Offer extends Model { public function products(){ $this->belongsToMany('App\Product', product_offers); } public function users(){ $this->belongsTo('App\User'); }
Modelo del Producto:
class Product extends Model { public function offers(){ $this->belongsToMany('App\Offer', product_offers); } }
Modelo de usuario:
class User extends Model { public function offers(){ $this->hasMany('App\Offer'); } }