Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

mysql ve sütun sayısı

Gelişmiş bir emlak projesi üzerinde çalışıyorum.Sadece emlak ilanları olacak.Admin panelinden emlak ilanları eklenecek.Şimdi takıldığım bazı noktalar;

1- Admin panelinden emlak ilanı eklerken konut , arsa , işyeri gibi detayları farklı ilan grupları olacak.Yani konut ilanı eklerken oda sayısı , kaçıncı katta vb. olacakken ; arsa ilanı eklerken kaç m2, gabari , KASK,TASK, imar durumu gibi detaylar olacak.Bu sebeple bu ilanlar girilirken kullanılan formlar da birbirinden farklı olacak.işyeri , devren iş yeri gibi bir çok bir birinden farklı ilan formu olacak.Bu formlardan aldığım verileri veritabanına kaydedeceğim.( php ve mysql ) buraya kadar sorun yok.Buradaki sorunlarım;
a- Bu ayrı ayrı formlardan aldığım verileri tek bir tabloya yazarsam (hepsini aynı tabloya) yaklaşık 50-60 tane sütun olacak.Bu mysqlin performansını ne kadar etkiler?
b- Bir tabloda 50-60 tane sütun olması mantıklı mıdır? (mysql 4.096 sütuna kadar izin veriyor yanlış bilmiyorsam)
c- girilen veri miktarı arttıkça bu tabloda problem yaşarmıyım?

2- emlakların konum bilgileri girilirken il,ilçe,mahalle gibi bilgiler selectboxtan seçilecek.Yani hazırda tutulacak,admin oradan seçecek.Benim bu verileri mysqlden çekmem mümkün değil çünkü mysql boyutum 25mb ve bu konum bilgileri 20mb yer tutuyor.Bunları bir dosyaya yazıp array kullarak çektirmem mümkün olur mu?

3-Eğer verileri arsa için ayrı tablo,konut için ayrı ve diğer yaklaşık 10 seçenek için ayrı tablo yaparsam arama işlemini nasıl yapabilirim.Emalk projesi olduğundan detaylı arama kısmı ön planda olacak?

4-İnceleyip fikir edinmeme yardımcı olabilecek ; bahsettiğim projeye uyan , örnek olarak gösterebileceğiniz script ya da sistemler var mı...
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • Kesali adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    208 cevap - 2 soru
    İyi bir indexleme yaparsan vede tablolara parçalarsan çok fazla performans sorunu çekeceğini zannetmem. Eğer çok fazla birbirinden farklı değer giriyorsan bunları tablolara veya sütunlara ayırman çok zor olur. Ayırmak yerine serialize fonksiyonu ile array yapısındaki bu verileri database inde bir sütunda tutabilirsin. Aynı şekilde unserialize ile açıp rahatlıkla kullanabilirsin.

    25mb mysql limiti hangi çağdan kalma hosting firması veriyor sana :D. Hosting aldığın firmaya söyle arttırsınlar eğer arttırmazlarsa kendine başka firma bul 25mb çok komik çünkü.

    Eğer bunları yapamıyorsan. Konum bilgilerini sqlite ile .db dosyasında tutabilirsin. Sqlite okuma performansı oldukça iyidir. Konum bilgilerini güncellemeyeğin için yazma performansı ile işin yok.

    Öncelikle bu tip aramalarda arka planda çalışan kod kadar kullanıcılarından aldığın verilerde önemlidir. List menuler ile tür (arsa/konut vs), il, ilçe vs gerekli bilgileri checkbox list ile edinmelisin. Sonra en büyük porsiyondan aramaya başlayarak istediğin verileri getirmelisin. Örnek en büyük porsiyon arsa ile arsa tablosunda arama yapmalısın. Sonra il bilgisini sonra ilçe sonra m2 gibi detaylardan arama yapmalısın.

    Ücretsiz bulabileceğin bu tip bir şey var mı bilmiyorum.
    • sodium adlı üyenin fotoğrafı sodium
      cevaplarınız için çok teşekkür ederim.Takıldığım bir kaç nokta var cevaplarınızda.
      1- serialize methodu ile veritabanına nasıl kayddedebilirim.İnternette çok araştırdım ama yeterli kaynak yok maalesef.Sadece nasıl kullanıldığı ile ilgili örnekler var.Bununla ilgili örnek ve ya kaynak var mı bildiğiniz?
      2- il ilçe semt bilgileri için de serialize kullanmam mümkün olur mu?
      10 yıl önce yazılmış
    • Kesali adlı üyenin fotoğrafı Kesali
      Sahidindeni örnek alabilirsin siteni yapmak için. Ev ilanı çıktı diyelim soldaki alandaki çeşitli listeler var. Onları filtre olarak kullanacağın için her birine sütun açabilirsin. İl ilçe bilgisini arama kriteri olarak kullanacağın için serialize ile işini zorlaştırmana gerek yok. İlanın hemen altında arama sorgularına etki etmeyen ama satın almaya etki eden özellikler kısmı var Kullanım Amacı/genel özellikler/vs var. BU bölümü ayrı bir tabloya alıp. id|ev_id|ozellik bu üç sütunu açıp özelliklerin tamamını ozellik sütununda serialize ile tutabilirsin.

      Örnek

      $veri = serialize(array('isitici'=>'klima','sicak_su'=>'Doğal Gaz'));
      


      Aşağıdaki gibi belli bir kurala uymayan arama için çok fazla etkisi olmayan değişkenleri tek bir sütuna atabilirsin.
      verileri okurkende.
      $unserialize_veri = unserialize($veri);
      


      ile veriyi tekrar array yapısına döndürebilirsin.
      10 yıl önce yazılmış
    • sodium adlı üyenin fotoğrafı sodium
      gerçekten çok teşekkür ederim yardımlarınız için.Çok işime yarayacak bilgiler verdiniz.
      10 yıl önce yazılmış

Cevaplar

  • siyahbeyaz adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    472 cevap - 20 soru
    en kestirme yol ve en iyi yolu soliyim sana kardesim..

    nasıl bi kategorileme sistemi yapıyorsan bu ev araba grupların icinde öyle bir kategori sistemi yap. ekstradan ilan id sinin kontrolu ıcınde ekstra bir tablo yap ilanın turunu tutsun.. demek istedigim söyle

    Tablolar:
    Grup_Konut
    --------------------
    id | BaglamaID | oda sayisi| .. | ... | .. | .. | metrekare | kat | ... |
    ---------------------------------------------------

    Grup_arsa:
    ----------------
    id | BaglamaID | kacDekar | Kacmetrekare | ... | .. | .. | .. |

    Grup_Vasita
    ------------
    id | BaglamaID | vites | koltuk | airback | .. .. | .. | .. |
    -----------------------------------------------------


    Tablo_Baglama
    -------------------
    BaglaID | TUR | ilanID
    --------------------------
    1 | Konut | 34
    2 | Konut | 36
    3 | Arsa | 35
    4 | Vasia | 46
    ----------------------------

    .. gibi.