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

veri tabanı tasarımını nasıl yapmak daha uygundur

merhaba

veri tabanımda aşağıdaki tablolar ve alanlar var.

yazarlar(y_id, y_adi ..vs )
kayıtlar(k_adi,k_icerik,y_id, vs...)



şimdi ben girilen bir kaydın hangi alana ait olduğunu da seçerek girmesini istiyorum.

kullanıcı kayıt adı + kayıt içeriği + ve kaydın içeriğinin hangi alanla ilgili olduğunu seçecek.

tıpkı bu kaydı bu siteye girerken, seçmek zorunda olduğumu ilgili alan gibi..


bu tasarımda hangisi daha uygundur, ya da öneriniz nedir?

a) kayıtlar tablosuna ek alanlar eklenir. şöyle:


kayıtlar(k_adi,k_icerik,k_yazarid, ...k_isletim, k_web, k_asp, k_php, k_csharp ..vs   )



b)
1- alanlar isminde bir tablo alanlar(a_id, a_adi)
2- secalan isminde bir tablo oluşturulur (s_sira, s_kayitid,s_alanid)

yani bizim ne kadar alanımız varsa önce alanlar tablosuna bu girdiler yapılır. hazırlanır.
sonra girilen her bir kayıt için, kullanıcı alanlardan istediğini seçer. ve secalan tablosuna seçtiği her alan türü için yeni bir kayıt yapılır.

örn:

kayıt adı: xxx
metni: yyy
alanlar: php,mysql,javscript



bu durumda
secalan tablosuna 3 kayıt girilir.

(bu kaydın id si=10 olsun. secalanda da 21.sırada olsun.
php:5, mysql:6 javascrpt:7 in alan id leri olsun.. örnek şöyle kaydolur)


secalan
------------
s_sira     s_kayitid    s_alanid
21        10             5      //10.kayıt php ile ilgili
22        10             6    //10.kayıt mysql ile ilgili
23        10            7   //10.kayıt javascript ile ilgili  



...bla bla bla...

ne önerirsiniz. teşekkürler.
+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ı
    11 yıl önce yazılmış
    208 cevap - 2 soru
    B daha mantıklı hem üzerinde çalışması daha kolay (INNER JOIN vs) hemde daha geliştirmeye müsait. A seçeneğinde ilerde yeni bir seçenek eklemek istersen tablo yapısını değiştirmen gerekecek. B de işe sadece yeni bir kayıt eklemen yeterli.
    • can-inlife adlı üyenin fotoğrafı can-inlife
      başka bir öneri yoksa, bence de b seçeneği uygun. teşekkürler
      11 yıl önce yazılmış
    • Kesali adlı üyenin fotoğrafı Kesali
      Tabi bu benim görüşüm diğer cevaplarıda merak etmiyorum değil :D
      11 yıl önce yazılmış
    • can-inlife adlı üyenin fotoğrafı can-inlife
      bence de. güzel öneriler gelir dedim ama, herkes aynı kafadan herhalde :)
      aklın yolu bir belki de
      11 yıl önce yazılmış
    • bensedat18 adlı üyenin fotoğrafı bensedat18
      ben de elbetteki b yi öneririm. çünkü mesela bir sebep söylemek gerekirse; kategorilere ilişkin listeleme yapacaksın diyelim. eğer a şıkkında ki gibi bir yapı hazırlarsan eksradan kategori sayısı kadar index ataman gerekecek sorguların hızlı olsun diye. b deki durumda sadece kategorilerdeki s_kayitid sütununu indexlemen yetecek. bunun gibi daha sayılabilecek bilimum artı yön var.
      11 yıl önce yazılmış

Cevaplar

  • siyahbeyaz adlı üyenin fotoğrafı
    11 yıl önce yazılmış
    472 cevap - 20 soru
    b daha mantıklı gelior bana ama bu bıraz eksik gibi gorunuor. malumun ısın ıcınde yazarlar var... yazarların id sını yada uye idsini belirtmemişsin. hangı alanın hangı uyeye aıt oldugunuda ayrıstırman gerektigini düsünüyorum
    • can-inlife adlı üyenin fotoğrafı can-inlife
      şunu mu demek istedin üstad ?
      -> hani üye kayıt oluyor, kaydolurken ilgi,uzmanlık alanlarını seçiyor. yine yukarıdaki alanlardan.
      eğer buysa kasteddiğin; şöyle bir değişiklik düşündüm :



      kalan (girilen kayıtlerın ilgili oldukları alanlar için)
      ------------
      s_sira     s_kayitid    s_alanid
      21        10             5      //10.kayıt php ile ilgili
      22        10             6    //10.kayıt mysql ile ilgili
      23        10            7   //10.kayıt javascript ile ilgili  
      




      yalan  (yazarların ilgi ve uzmanlık alanları için)
      ------------
      y_sira   y_yazarid    y_alanid
      21        10             5      //10.yazar php ile ilgili,uzman
      22        10             6    //10.yazar mysql ile ilgili,uzman
      23        10            7   //10.yazar javascript ile ilgili,uzman  
      
      11 yıl önce yazılmış
    • can-inlife adlı üyenin fotoğrafı can-inlife
      bence şu daha uygun.


      alanlar ( a_id, alan_adi )
      


      önce alanları gireriz...
      1 php
      2 mysql
      3 asp vs..


      yazaralan ( ya_sira, ya_yazarid, ya_alanid )
      


      her yazarı da buraya gireriz..
      hangi kayıt hangi alanlarla ilgili..

      kayitalan ( ka_sira, ka_kayitid, ka_alanid, )
      


      her kaydı buraya gireriz..
      hangi kayıt hangi alanlarla ilgili..
      11 yıl önce yazılmış