Laravel Türkiye Discord Kanalı Forumda kod paylaşılırken dikkat edilmesi gerekenler!Birlikte proje geliştirmek ister misiniz?
  • isset

      Seviye 66
    • Düzenlendi

    Çok emin değilim ama veri normalizasyonu başlıgını chat gptdeb edindim ordanda devam ettim bu sorunun cevabını profesyonellerden yada tecrübeli sizlerden duymak istedim.

    iller il tablomda
    ilçeler ilçe taqblomda
    semtler semt tablomda tutuluyor

    Hızlı siparişim tablom var ve bu tabloya il ilçe semt adında üç bilgiyide ayrı ayrı girmek ile
    adres_detay adında bir ara tablo oluşturup il ilçe ve semt idlerini burda tutup daha sonra bu satırın id nosunu
    hızlısipariş tablomda tek bir id olarak saklamak neden daha profesyonelce bir yaklaşım ? farkı ne ?

    yapay zeka derki detaylı raporlama yapılacaksa veri gittikce büyüyecekse veri normalizasyonu açısından vs vs vs bi sürü şey söylüyo nedir bu veri normalizasyonu ?

    aynuı örneği aslında ürün ürün cins ürün kategori olarak verseydim daha manbtıklı olurdu sanırım

    Veri normalizasyonu, veritabanlarında veri tekrarını azaltmak, veri bütünlüğünü korumak ve veri tutarsızlıklarını önlemek amacıyla verileri organize etme sürecidir. Bu işlem, genellikle verileri ilişkisel tablolar hâlinde düzenleyerek gereksiz veri tekrarını (redundancy) ortadan kaldırır ve güncelleme, ekleme, silme işlemlerinde tutarlılığı sağlar.

    Yani zaten laravelin belli basli standartlarini takip ederek ilerlerseniz otomatik sorun cozulmus oluyor. Laravel, Eloquent ORM ve migration yapısı sayesinde veri normalizasyonunu zaten uygulamanı sağlar.

    • isset

        Seviye 66
      • Düzenlendi

      Bir adet Ana tablom var ve il - ilçe - semt adında 3 tablom var
      Ana tablodan bu üç tabloya ayrı ayrı ilişki kurmak mı yoksa bir adres_detay adlı ara tablo kullanıp
      ana tablodan adres_detay tabloya tek bir ilişkimi kurmalımıyımın cevabını alabileceğim belli basli standartlarmı var ?
      sorumun laravelle ilgili olmadıgını düşünerek php kategorisinde açtım veritabanları bölümü olsaydı orayı etiketlerdimde ben bunun laravelle yada php ile ilgili bişe olabileceğini hiç düşünmedim acıkcası.

      şimdi baktımda sql diye bi etikette varmış

        isset ben 3 farkli model acip 3 farkli table olusturarak her birini birbirine iliskiledim, bana boyle daha esnek geliyor

        isset Bir kullanıcının birden fazla adresi olabilir. Bu durumda şöyle bir yapı kurmalısınız:

        provinces
        +----+----------+
        | id |   name   |
        +----+----------+
        |  1 | İstanbul |
        +----+----------+
        
        districts
        +----+---------+-------------+
        | id |  name   | province_id |
        +----+---------+-------------+
        |  1 | Şişli   |      1      |
        +----+---------+-------------+
        
        quarters
        +----+-----------+-------------+
        | id |   name    | district_id |
        +----+-----------+-------------+
        |  1 | Teşvikiye |      1      |
        +----+-----------+-------------+
        
        neighborhoods
        +----+-----------+------------+
        | id |   name    | quarter_id |
        +----+-----------+------------+
        |  1 | Teşvikiye |     1      |
        +----+-----------+------------+
        
        addresses
        +----+---------+-------------+-------------+------------+-----------------+-------------------------------------------------------+------+
        | id | user_id | province_id | district_id | quarter_id | neighborhood_id |                         address                       | name |
        +----+---------+-------------+-------------+------------+-----------------+-------------------------------------------------------+------+
        |  1 |    1    |      1      |      1      |     1      |        1        | Teşvikiye, Teşvikiye Cd. No:12, 34365 Şişli/İstanbul  | İş   |
        +----+---------+-------------+-------------+------------+-----------------+-------------------------------------------------------+------+

        user_id, province_id gibi alanlar için ise foreign key oluşturarak veri bütünlüğünü koruyacaksınız ve veri normalizasyonunu sağlamış olacaksınız.

        tşk ederim