Veri Tabanı Yönetimi Hakkında Yardım
-
iyi günler
bir profil sistemi yapmaya çalışıyorum sistem söyle isliyor
login yapmak için gerekli olan bilgler tek bir table da tutuluyor bunlar
id sifre tel email v.s diye gidiyor
sonra bu kişilerin profil bilgileri girmek için
işte resim urlsi okulu yaşı .... diye tek bilgi girebiiyorken çalışıtığı yerler gibi çoğul bilgi girebileceği yerler var nsıl yapılır acaba analtabildim mi bilemiyorum
-
ben olsam baska bir tabloda yapardım, o kullanıcının id siyle calıstıgı yeri tutan satırlarım olurdu. cekerken de o id ye ait butun satırları cekerdim diye dusunuyorum en basiti.
-
"nested json" formatıyla yapabilirsin.
örnek olarak : https://www.wagonhq.com/sql-tutorial/values-from-nested-json
mongodb'de felan daha kolay olabilir bu işlemler.
-
RockZs bunu yazdı
"nested json" formatıyla yapabilirsin.
örnek olarak : https://www.wagonhq.com/sql-tutorial/values-from-nested-json
mongodb'de felan daha kolay olabilir bu işlemler.
hocam mysql kullanmak zorundayım birçok sayfayı öyleyaptım baya bir bilgiyi ona göre çekiyorum
-
blackseaboy28 bunu yazdı
ben olsam baska bir tabloda yapardım, o kullanıcının id siyle calıstıgı yeri tutan satırlarım olurdu. cekerken de o id ye ait butun satırları cekerdim diye dusunuyorum en basiti.
benimde aklıma ilk bu geldi ama bu da bir yerden sonra çok hantallaşır gibi geliyor
-
Bu çoğul yerlerde arama yaptırmayacaksan direk bas gitsin tek yere virgül ile falan; en ilkel yol.
Ya da,
kullanıcılar
kullanıcı bilgileri
calısılan yer bilgileri
calısılan yerler
Çalışılan yerlere default çalışılan yerlerle birlikte sonradan eklenenleri de eklersin. Buradaki id' lere göre de calısılan yer bilgilerine kullanıcı id si ile işlersin.
buradaki çalışılan yerlere de kullanıcı id' sinden erişirsin.
Yani,
Kullanıcılar : e-posta, şifre gibi önemli bilgiler
Kullanıcı Bilgileri : isim, soyisim, cinsiyet gibi temel bilgiler
Çalışılan Yer Bilgileri : Tahribat, Arçelik gibi her firmaya ait tekil bilgiler
Çalışılan Yerler : kullanıcı id' si ve Çalışılan Yer Bilgilerindeki kullanıcının çalıştığı firmanın Id' si
Örnek yapı :
id, email, password .... (5 - ozgun@hotmail.com - 1234 - ....)
id, uid, name, surname .... (1 - 5 - ozgun - unlu - ....)
id, company_name (1 - Arçelik, 2 - Sony, 3 - Bakkal Hüseyin)
id, uid, company_id (1 - 5 - 1, 2 - 5 - 3)
Burada özgün isimli şahıs Arçelik ve Bakkal Hüseyin de çalışmış gibi.
-
asiminnesli bunu yazdıblackseaboy28 bunu yazdı
ben olsam baska bir tabloda yapardım, o kullanıcının id siyle calıstıgı yeri tutan satırlarım olurdu. cekerken de o id ye ait butun satırları cekerdim diye dusunuyorum en basiti.
benimde aklıma ilk bu geldi ama bu da bir yerden sonra çok hantallaşır gibi geliyor
1. Normalizasyon kurali.foreign key olarak kullandigin field indexse hantallasmaz korkma
-
blackseaboy28 bunu yazdı
ben olsam baska bir tabloda yapardım, o kullanıcının id siyle calıstıgı yeri tutan satırlarım olurdu. cekerken de o id ye ait butun satırları cekerdim diye dusunuyorum en basiti.
uygulanacak tek mantıklı yöntem bu hocam.
Foreign key ve düzgün veri türü seçersen hantallaşma olmaz. Ayrıca filtreleme yapacağın alanlara göre de indexleme yapman lazım.
Virgülle ayırma olaylarına falan hiç girme. Asıl seni ve sistemi yavaşlatacak yöntem budur.
Ayrıca ilişkisel veritabanı kullandığın için verilerinde de saçma sapan bozulmalar olmayacaktır.
-
Bence ilerde daha büyük sorunlarda çakılıp kalmamak için Veritabanı tasarımı, normalizasyonu nasıl yapılmalı ...bu konularla ilgili temel bilgileri iyice edinmeni tavsiye ederim.
Internetten kaynak bulabilecegin gibi , temelde bu isi anlatan en guzel kaynaklardan birisini de tavsiye ederim.
http://www.hepsiburada.com/veritabani-mantigi-p-KPUSULA106?categoryid=211651&productid=kpusula106
-
Tek üyeye bağlı çoğul girdiler için ayrı bir tablo gerekir. Oluşturduğun tabloda kullanıcının id'sini tutan sütunu foreign key ile kullanıcı tablosundaki id'ye bağlamalısın. (ki bu sayede mesela üye silindiğinde, bu kayıtlar da otomatik silinsin).
Üye tablosunda yeni bir sütun açıp virgülle, json'la, serialize'la vb. bilgileri tek bölgeye yazdırmak çoğu durumda yanlış yoldur. Silme ve güncelleme işlemleri için gereksiz işler açarsın başına.
Foreign key, geçiş tablosu vb. konularına bir göz at hemen anlayacaksın mevzuyu. Bu kavramlar illa ki çıkacak karşına, fırsat bulmuşken o şekilde hallet derim ben.
-
Farklı bir bilgisayardan bağlandığım için hızlıca excel'de hazırlamaya çalıştım. Şöyle bir tablo yapısı geliştirerek çözüm bulabilirsin.
Yani Forign key mantığı ile çözebilirsin.
Foreign Key nedir?
Foreign Key (Yabancı Anahtar), veri tabanında farklı tablolardaki sütunlar için ilişki ve kısıt uygulama yoludur. Foreign Key bir tabloya girilebilecek değerleri başka bir tablonun belli alanında yer alabilecek veri grubu ile sınırlandırmaya ve en önemlisi de ilişkilendirmeye yarar.