Klasik e ticeret sitelerinde hiyerarşik categori düzeni vardır. Yani kök-> gövde->dal mantığı.. Ürünler dalda olur. Tıpki ağaçlar olduğu gibi.
ORM mantığında düşünülürse, ürünün herbir özelliği bir nesne özelliğidir. Bulara göre filitreleme yapılmak istenirse Eloquent ile query Scopeler tamımlanır. Ve her defasında query yazmak yerine sadece query scope methodu çağrılır. Böylelikle filitreleme yapılır.. Veya ürünlerin tüm özellikleri bir tabloda toplanır, orada ürün kategorisine göre filtreleme yapılır ve sonrasında ürün özelliklerine göre bir filtreleme yapılır. İlişki türü hasMany olabilir.. Ya da eğer ben kategorilere de genel özellikler atamak istiyorsam diyorsanız Polymorphic lişki de olabilir..
Şuraki örnekleri inceleğebilirsiniz :
http://laravel.com/docs/5.1/eloquent#query-scopes
Eğer tag göre filtreleme yapılırsa işler daha da kolaylaşır. Many To Many Polymorphic ilişkiyle yapılar bilir. Bu da Eloquent bölümünde anlatılır..
Eğer Laravel ile yapacaksanızi ve ilişkisel veri tabanı kullanacaksanız. Eloquent ORM öğrenin. Öğrendikçe zaten işin mantığını çözeceksiniz. ORM biraz karışık gibi görünsede öğrendikçe biz query yazarken sürünüyormuşuz diyeceksiniz..