Skip to main content

AccessTr.neT


Tablo tasarımı ve ilişkilendirme

Hayri16
Hayri16
21
17688

Tablo tasarımı ve ilişkilendirme

#1
Access'in temeli bildiğiniz gibi tablolardır. Bütün işlemler Tablolar ve Alanları üzerinde yapılmaktadır.
Bu nedenle tabloların programın başından iyi tasarlanması işlerimizi kolaylaştıracağı gibi
programdan alacağımız verimi de arttıracaktır. Yeni başlayan arkadaşlarımız için bu olayı resimlerle
örnekleyerek anlatmaya çalışacağım.

Bir firmamız var. Bu firmada çeşitli görevlerde olan personel var. Bu personel zaman zaman belirli eğitim
seminerlerine , kurslara gidip geliyor. Personelle ilgili bu kurs kayıtlarını tutacak bir veritabanının
tablo yapısını tasarlamamız istendi.

Önce bizden istenen ne varsa onları yazalım:
Adı - Soyadı- TCNo - babaadı- Doğum tarihi- İli - Yabancıdili - Görevi- Kurs adı- Başladığı tarih -
Bittiği tarih. Tüm bu bilgilerle elimizde şu yapıda bir tablo olur.

[Resim: 291dbnc.jpg]

Bu tablodaki verilerimizde şimdilik bir sorun yok gibi görünüyor. Ama personel Bir başka kursa gitmek
istediğinde , bu tablo yapımıza göre şöyle bir kayıt eklememiz gerekecek:

[Resim: 20rmjyt.jpg]

Bir çok bilgiyi tekrar girmek zorunda kaldık. Düşünün bu şekilde yüzlerce kayıt ekleyeceğimizi... O halde
bizim bu şekilde ki bir tablo yapımız pek işlevsel değil. O zaman ne yapalım?
Tablomuzun "hareketli parçalarını" yani değişebilir verileri ana tablomuzdan ayıralım.
Bu durumda elimizde şöyle bir tablo kalır.

[Resim: 2rz3yq9.jpg]

Şimdi bu tabloya baktığımızda bazı alanların sıkça tekrarlandığını görüyoruz. Nedir bu alanlar. İli ve
yabancı dil alanları. Nasıl daha kolay yaparız? Bu alanları ayrı tablo yapıp, verileri oradan bu
tabloya ilşkilendirerek. Önce bu iki alanı ayrı tablo yapalım:

[Resim: 2nltw8i.jpg]

[Resim: 350syh1.jpg]

Sonra ana tablomuzdaki ili ve yabancıdili alanlarının veri tipini sayı haline getirip adlarını da ilno ve
dilno yapıyoruz. Buralara il ve dil tablosundan ilgili kaydın id numarasını aktaracağız.
Sonuçta tablomuz şu hale geliyor:

[Resim: 15dqs0n.jpg]

Buradaki işlemimizi tamamlamış gibiyiz. Şimdi gelelim hareketli olan bölümümüze.

[Resim: 2qkmjk9.jpg]

Durum bu şekilde idi.
Bunu da bir tablo haline getiriyoruz. Buna bir de kisino diye sayısal alan ekliyoruz. Neden? Bu
bilgilerin hangi personele ait olduğunu bilmek için. kisino alanına , bu bilgiler hangi personele aitse onun
id sini yazacağız. Şimdi durum aşağıdaki gibi oldu:

[Resim: abhtv9.jpg]

Görüldüğü gibi burada da tekrarlanan alanlar var. Bunlar görev ve kurs alanları. Daha önce yaptığımız
gibi bu alanları da tablo haline getirip , bu tabloyla ilişkilendirelim.

[Resim: 6xtaw1.jpg]

[Resim: 2n1w8xl.jpg]

Yine bu bağlantı kuracağımız alanları sayısal alan haline getirip , tablolardan ilgili kayıtların id
lerini aktaralım.

[Resim: 14jnfig.jpg]

Tablomuzun yapısı bu şekilde oldu. En başa gelip o 2 personeli eklemek istediğimizde
yapacağımız iş sadece aşağıdaki gibi olacaktır.

[Resim: 24yajx0.jpg]

Ne kadar kolaylık değil mi?
Bundan sonra istediğimiz işlemleri, sorguları bu şekilde daha güvenli, daha verimli ve daha kısa zamanda
yapmamız mümkün.
Tablolarımızın ilişki durumu da şöyle:

[Resim: 29dwavd.jpg]

Son olarak:
1- Tablolarımızda değişebilen alanlarını ayrı tablo.
2- Tekrarlanan alanlarını ayrı tablo yapmalıyız.
3- Tablo ve Alan isimlerinde mümkün olduğu kadar (maalesef) Türkçe karakter ve boşluk kullanmamalıyız.
4- Otomatik sayı alanı mutlaka tablolarımızda olmalı.

Umarım yararlı olmuştur.
İyi çalışmalar.
Hayri16, 12-11-2009 tarihinden beri AccessTr.neT üyesidir.
Son Düzenleme: 17/01/2011, 17:35, Düzenleyen: Hayri16.
Cevapla
#2
Teşekkürler sayın Hayri16. Özellikle en son satırdaki bahsettiğiniz Otomatik Sayı'nın önemine dikkat etmek lazım.
AccessTr.Net teknik konular içeren bir sitedir. Bu tip sitelerde en iyi şekilde yardım alabilmeniz için Site Kurallarını mutlaka okumanız ve buna göre hareket etmeniz lazım.
Cevapla
#3
teşekkürler hayri hocam
GERİ SAYIM;Sen doğduğunda başladı ! Eğer (9) canlı bile olsaydın en fazla (8) kez kaçabilirdin Ölümden ! Bil ki (7) Düvele sultan dahi olsan yerin (6) Mekan olacak sana. En fazla (5) Metre kumaş götürebileceksin ! Kapatacaksın (4) açsanda gözlerini ! Bu (3) günlük fani dünyada Azraile (2) kat olup yalvarsanda nafile EceL geldiğinde (1) gün öleceksin ! İşte, o an herşey (0) dan başlayacak. Çünkü,
ÖLÜM BİR YOK OLUŞ DEĞİL,YENİDEN DOĞUŞTUR !
Cevapla
#4
Tşk elinize sağlık
okileturc, 18-03-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla
#5
Sayın Hayri16;

İyi akşamlar..

Bir çok arkadaşımıza yararlı olacak bu bilgilendirmeniz için teşekkürler.

Her şey gönlünüzce olsun..

Sevgi ve saygılar...
Cevapla
#6
Sn Hayri hocam çok yararlı bilgiler sizin anlatımınızla daha bir anlaşılır olmuş. Ellerine sağlık.
alkisalkisalkis

Saygılar...

+rep
Bilgi paylaşıldıkça çoğalır....
Her engel, yaşam koşullarınızı daha iyileştirecek bir fırsattır.


Access için her zaman lazım olacak konu başlıkları listesi


Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task