Veritabanı Tablo İçinde İlişki
-
Mürit ve mürideler ,
Şöyle bir sorum olacak.
Şuan yapmaya calıstığım bir tablo ve kurmam gereken bir mantık var. Fakat hata yapmak istemiyorum . Sorunu kendi projem üzerinden değil farklı bir olayı sunuyorum sizlere.
Soruna gelecek olursak sorun şu şekilde.
Örneğin OkunacakKitapTablosu var.
OkunacakKitapID | KitapID | KullaniciID | BaglantiliOkunacakKitapID diye alanlarım var 3 adet.
KitaplarTablosu var
KitapID | KitapAdi diye 2 adet alanlarım var.
Olay şu şekilde gerçekleşiyor.
1 Kullanıcı seçelim adı MhmdAlmz olsun ve KullanıcıID 1453 olsun.
4 adet de kitabımız var ;
Kitap Adi : Paradox / ID :5
Kitap Adi : Züleyha / ID : 10
Kitap Adi : Adini Sen Koy / ID : 9
Kitap Adi : Zambak / ID : 55
Ben evvelden 3 kitap almıştım fakat.. Bunların okuma sıraları mevcut. Mesela ben dedim ki Paradox okuyacağım Paradox bitince Züleyhayı O bitince Zambağı okuyacağım (Kullanıcıyım ben)
Programcı olarak da gittim Veritabanına şu şekilde verileri işledim.
OkunacakKitapID :1 / KitapID : 5 / KullaniciID :1453 / BaglantiliOkunacakKitapID : NULL
OkunacakKitapID :2 / KitapID : 10 / KullaniciID :1453 / BaglantiliOkunacakKitapID : 1
OkunacakKitapID :3 / KitapID : 55 / KullaniciID :1453 / BaglantiliOkunacakKitapID : 2
Ve kullanıcıya şu şekilde kitaplarını sunmak istiyorum şu şekilde bir kod ile;$QueryOkunacakKitaplariGetir=$db->prepare("Select KitapID from OkunacakKitapTablosu where KullaniciID=:ID"); $QueryOkunacakKitaplariGetir->bindParam(":ID",$ID,PDO::PARAM_INT); $QueryOkunacakKitaplariGetir->execute(); if($QueryOkunacakKitaplariGetir->rowCount()) { $SonucTablo=array(); foreach($QueryOkunacakKitaplariGetir as $Row) { $SonucTablo[]=$Row; } print_r(json_encode($SonucTablo)); }else{ echo "Okunacak Kitap Listesi Bulunamadı"; }Burdan bana tablo geldi. Daha sonra X Okuması Y Okuması ile ilişkili olduğundan ben bunu CSS ile veya X Bir mantık ile Kitapları ok ile yan yana getireceğim..
Şimdi 3 Kitap döndü ya. 3 Button koyduğumu düşünün bunların ID leri mevcut içerisinde datayı gömüyorum ben buttonlara . Son kullanıcıya şu şekilde bir yapı sunuyorum.

Son kullanıcının okuması gerektiği kitaplar bu şekilde gözükmüş oluyor.
Not : Yapmak istediğim yapı buna benzer. Ben bunu yaparsam . Ilerde bana sorun yaratır mı ? Yada bu mantığa alternatif olarak bak şunu yaparsan daha iyi olur gibi bir mantık sunarsanız çok sevinirim.
Atış serbest belki de yılın en büyük saçmalığını yapıyorum ama aklıma başka bir mantık gelmedi...
Benim için önemli bir durum bu teşekkürler.
-
Konuyla alakasız dbpatterns kullan
-
0x656e bunu yazdı
Konuyla alakasız dbpatterns kullan
teşekkürler bilmiyodum bunu ilk defa duyuyorum bidahakine buraya yaparım vtyi
-
Hocam BaglantiliOkunacakKitapID her zaman bir önceki okunan kitabı mı temsil ediyor her zaman ? column adını okuyunca bir sonra okunacak aynı konudaki bir kitaptan bahsediyorsun gibi geldi.
-
Yok hocam öyle olsa AUTO_INCREMENT'leri takip ederdim. fakat burda olay farklı
Okuma sıraları bir öncekine göre değişiyor.
Yani ben bunların arasına Sırasız okuma da ekleyebilirim. BaglantiliOkunacakKitapID eğer null ise okuması gereken herhangi bir kitap yok gibi düşünülebilir. fakat null değilse demekki bağlantı var ve hangi Kitapta ise öncelik onu buluyorum burdan ID ile de .
-
Gece upu olsun
-
yukarı yukarı
-
e abi bir de durum kolonu ekle bunların yanına.
eğer durumu 1 ise okunmuş olsun
0 ise okunmamış olsun.
eğer bağlantılı kitap idlerine göre listeletiyorsan, durumu 0 olanları çekersin.
Diyelim 2 nolu kitap okunmuş. Sen bu 2 nolu kitabı listeletmezsin ve sadece bağlantılı kitap idsini alırsın.
ve 2 id li kitap okunmuş olup (durumu 1) bağlantılı kitap idsi 1 ise sen 2 nin bağlantılı kitabını çağırırsın
okunma sırası 3 nolu kitap -1 nolu kitap olarak listeletirsin.
Kitap 1 Okunmamış
Kitap 2 Okunmuş (Bağlantılı Kitap : 1)
Kitap 3 Okunmamış ( Bağlantılı kitap : 2)
myblackworldweb tarafından 14/Haz/17 19:04 tarihinde düzenlenmiştir -
myblackworldweb bunu yazdı
e abi bir de durum kolonu ekle bunların yanına.
eğer durumu 1 ise okunmuş olsun
0 ise okunmamış olsun.
eğer bağlantılı kitap idlerine göre listeletiyorsan, durumu 0 olanları çekersin.
Diyelim 2 nolu kitap okunmuş. Sen bu 2 nolu kitabı listeletmezsin ve sadece bağlantılı kitap idsini alırsın.
ve 2 id li kitap okunmuş olup (durumu 1) bağlantılı kitap idsi 1 ise sen 2 nin bağlantılı kitabını çağırırsın
okunma sırası 3 nolu kitap -1 nolu kitap olarak listeletirsin.
Kitap 1 Okunmamış
Kitap 2 Okunmuş (Bağlantılı Kitap : 1)
Kitap 3 Okunmamış ( Bağlantılı kitap : 2)
Hocam bu gibi sorunları zaten halledecek bir yapı var elimde ben sadece bu okuma sralarını aynı tabloda tutmamın bir sakıncası olup olmadığını merak ediyorum
-
işin üstadları gelip yeşillendirecektir illaki ama ben kendi nacizhane fikrimi söyleyeyim veri tabanlarını sutunlardan çok satırlar yorar yani istediğin kadar sutun koy sıkıntı çıkmaz temel olarak.
ben nasıl yapardım
öncelikle kitap ıd yi yan yana ";" ile yarırır yazardım hem sıra hem kitaplar belirtilmiş olur daha az sutunla sorun çözülmüş olurdu
-
asiminnesli bunu yazdı
işin üstadları gelip yeşillendirecektir illaki ama ben kendi nacizhane fikrimi söyleyeyim veri tabanlarını sutunlardan çok satırlar yorar yani istediğin kadar sutun koy sıkıntı çıkmaz temel olarak.
ben nasıl yapardım
öncelikle kitap ıd yi yan yana ";" ile yarırır yazardım hem sıra hem kitaplar belirtilmiş olur daha az sutunla sorun çözülmüş olurdu
Sorgu yazılması zor olur hocam bunun için :)
