Merhaba arkadaşlar!
Bir şeyi merak ettim;mesela bilirsiniz araba sitelerinde bir arabanın 5 tane resimi vardır ve detay resmine girdiğinizde 5 resmi de görürsünüz.Bunun için nasıl bir yöntem izliyorsunuz?
Benim aklımda iki yöntem var.
1)mysql veritabanında araba tablosu içindeki resim alanınaresim="araba1.jpg,araba2.jpg,araba3.jpg" diye kaydedip bunu explode ile virgülden parçalayarak almak.
2)Bunun için yeni bir araba_resim tablosu yapmak
araba_id--------------resim
1--------------------araba1.jpg
1--------------------araba2.jpg
1--------------------araba3.jpg
ve yukarıdaki tablodan id=1 olanları listeletmek.
Bana 1. yöntem daha mantılı geldi alandan tasarruf ederim ve fazladan bir tabloya uğraşmamış olurum.
Ama asıl merak ettiğim bunlardan başka bir yöntem var mı?Yani siz bu yoğurdu nasıl yiyorsunuz?
Veritabanına tek id için birden fazla resim kaydetme
17
●3.428
- 26-10-2010, 22:29:16
- 26-10-2010, 22:34:50Üyeliği durduruldubu soruyu daha önceden ben de sormuştum.
bir kısım medya 1. yöntemi, bir kısım medya 2. yöntemi tavsiye etti.
Sanırım ikisinide denemeden kendimize göre en iyi olanı seçemeyeceğiz.
1. yöntemde virgül yerine "a8+,u" gibi birkaç karakter kullanırsan suistimal edilme şansı daha az olur. - 27-10-2010, 00:54:31İçinde bulunduğum projelerde her iki yöntemi de denedim.
Birinci yöntemde tek sorguyla araba tablosunu çekersiniz, resim sütunundaki değerleri explode ile böler, foreach ile ekrana basarsınız.
İkinci yöntemde (normal şartlarda) önce araba tablosunu okur, id'yi alır, araba_resim tablosunda araba id sine göre verileri çeker, while ile döndürürsünüz.
İkinci yöntemde tek sorguda iki tablodan veri çekme gibi bir duruma girmezseniz, iki sorgu çalıştırmış olursunuz. Haa, bu mysql'e koyar mı ? Sanmam... Hani fark olsa bile gözle görülen bir fark olmaz gibime geliyor. ( yüzlerce resim yoksa )
Bu yoğurdu birinci yöntemle yemeyi tercih ederim. Zira ikinci yöntemde ayran oluyor sanki... - 27-10-2010, 01:10:37bence hiç veritabanını tekrar kastırmaya gerek yok. mesela arabanın id'sini (car_id) alıp images klasörüne de [car_id]_[resim_numarası].jpg şeklinde kaydedersiniz sonrada bir dizi for/if bloklarıyla tarayıcıya yazdırırsınız. ben hep böyle yaparım. veritabanını ne kadar az kullanırsanız o kadar hızlı çalışır.