E-Ticaret Siteleri Benzeri Kategori - Kayıt İlişkisi
Yaptığım bir proje için Kategori - Kayıt ilişkisinde kafamda oturmayan bir konu var. Projemin E-Ticaret sitesi ile alakası yok ama benziyor.
+ Telefon
+ Android
- Samsung
- Xiaomi
+ IOS
- Apple
Bu şeklide bir kategori yapımız olduğunu düşünürsek, burada ürünler nereye kaydedilir. Yani Ürün Kategori ID'si neresi olur.
Kendi mantığıma göre; Samsung, Xiaomi veya Apple altına kayıt edilmeli. Çünkü ya en üst kategoriye kaydedicen yada en alt kategoriye. Tabiki mantıklı olan en alt kategoriye kaydetmek.
Ancak o zamanda kafama şu konu takılıyor. Son ketegoriye ürünleri kaydettim. Elemanın biri geldi;
Samsung Kategorisinin altına; Note ve Galaxy kategorilerini ekledi. Ne olcak bundan önceki tüm kayıtlar, Samsung kategorisinde kaldı.
Sizce saçmalıyormuyum :)
eğer Samsung kategorisine ürün kaydedeceksen bence şu şekilde kaydetmen gerek
Telefon,Android,Samsung
Yani kategorinin tüm üst kategorilerini de dahil ederek kayıt edebilirsin. ID ile örnek verecek olursak
$category = '1,3,6';
// 1 = Telefon
// 3 = Android
// 6 = Samsung
Bu mantıkta ürünler tablonda 1,3,6
diye olacağından ararken FIND_IN_SET()
kullanacaksın mysql'de. Örneğin
// 3 android
$query = $db->query('select * from products where find_in_set(product_category, 3)')->fetchAll(PDO::FETCH_ASSOC);
gibi. Böylece Telefon kategorisine de girse Android kategorisine de girse ilgili ürünü görebilecek. Genelde e-ticaret sitelerinde bu mantıkta görürsün ürünleri