SQL'de Telefon Rehberi Nasıl Yapılır?

Ben yaptığım sistemde 3 tane tablo oluşturdum.
1.Grup : RehberAlanlar = Bu tabloda Id,GrupId,Alanlar adında 3 tane alanım var. Id auto increment olarak ayarladım.GrupId yi aşağıda vereceğim RehberGruplar tablasundan alıyor.Alanlar sütununda ise json olarak rehberdeki alanların verilerini tutmaktayım.Örnek olarak (["AD","SOYAD","ADRES","İŞ","EV"]) bunu bu şekilde çoğaltıp dinamik alanlar oluşturabilirsin.

2.Grup : RehberGruplar = Bu tabloda Id,UyeId,GrupAdi,Durum adında sütunlarım var.Id autoincrement olacak 1. tablomdaki GrupId kısmına bu id atanacak.UyeId isteğe bağlı eklemeyebilirsin üyelik sistemin yoksa.GrupAdi kısmına grubun adını yazıyorum varchar yapabilirsin.Durum kısmınada 0,1 değerlerini veriyorum.Kullanıcı sildiğinde Durum 0 oluyor.Yanlışlıkla silmelere karşı 1 hafta sql de bekletiyorum grupları.Eğer geri getirilmesi istenirse tekrar Durum u 1 yapıyorum.

3. Grup : RehberNumaralar = Id,GrupId,Numara,Alanlar adında sütünlarım mevcut. Id autoincrement,GrupId RehberGruplar tablosundaki Id den geliyor,Numara alanı benim sistemimde gsm no şart olduğu için ayrı sütün olarak açtım kontrolü daha kolay oluyor benim için.Bu alanı int 10 olarak ayarladım başına 0 ekletmiyorum numaraların.Alanlar sütununda verileri yine json olarak tutuyorum.Burdaki mantık RehberAlanlar daki Alanlar sütünuyla bu tabladaki Alanlar sütunu elemanları eşit olmalı ve yukarıdaki gibi her alanın altına kendi elamanı gelmeli. Örnek olarak

RehberAlanlar : (["AD","SOYAD","ADRES","İŞ","EV"])
RehberGruplar: (["YUNUS","AKYOL","İZMİR...","0232XXXXXXX","0232XXXXXXX"])

Bu şekilde yapabilirsin tablolarını.Sorgularına görede indexlerini verirsin sistemin çok yorulmadan çalışır.Şuanda 400gb tan fazla rehber tablom var herhangi bir sıkıntı yaşamıyorum.
 
Uyarı! Bu konu 8 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Geri
Yukarı