Form Tasarımına başlamadan önce öğrenmek istediklerim?

1 2
18/01/2011, 13:24

HSayar

Selamlar, işyerimin ihtiyaçları için bir veritabanı yönetimi tasarlamak istiyorum. Ancak bşalamadan önce sormak istediklerim var.

Bilindiği üzere Gerçek Kişi, İşyeri, Resmi Kurum, Dernek Araç Bilgileri değişiklik arz etmektedir.
Gerçek kişiler için (Türkiye Cumhuriyeti vatandaşları ve ikamet tezkeresi almış yabancılar) TC Kimlik No Birincil anahtar olabilecek nitelikte iken, İşyerleri için Vergi Kimlik Numarası Benzersiz alandır. (Yanlış ise söyleyiniz.) [ Dernekler ve Resmi kurumlar için böyle bir alan var ise söylerseniz sevinirim. yoksa lazım oldukça özel kod üretiriz artık.)
Bu bilgiler ışığında şu anda bize 4 tane farklı veritabanı lazım olduğu açıktır. (dbSAHIS, dbFIRMA, dbKAMU_KURUMU,, dbARAÇ) yalnız bunların hepsinin bir adresi olacağından ve herbirine ayrı adres tanımlaması gereksiz olacağından ayrıca bir adresler veritabanı tanımlanması zorunludur.
(birden fazla kişi işyeri adresi olarak çalıştığı işyeri adresini verebileceği gibi, firma üzerine kayıtlı araçlarda firma adresine bağlı olacaktır. Bunların yerine bu veritabanlarında (Şahıs, Firma, Araç vs.) Adr_ID referans verielebilir.
Ki bunlarda kendi içinde bağlı alt tabloalara ihtiyaç duyacaktır.

Bunların tamamını tek veritabanında tutmak dosya boyutunu büyüteceğinden farklı veritabanlarında nasıl tutabiliriz? Ve sorguların yapılacağı Formları da ayrı bir dosyada tutmak istiyorum.

18/01/2011, 17:24

alpeki99

Eğer problem sadece TC Kimlik No alanı ise ve diğer alanların çoğu hepsinde ortak ise tek tabloda tutmanız iyi olacaktır. Birincil Anahtar olarak zaten TC Kimlik No vb. değer kullanmayın. Aramalarda hızlı bulabilmek vs. için indekslersiniz bu tip alanları.

Form ve tablonun birbirinden ayrılması ise Access tarafından otomatik olarak yapılabiliyor zaten.
18/01/2011, 19:51

HSayar

TC Kimlik No Her şahıs için benzersiz olduğu için onu birincil anahtar olarak kullanmanın uygun olacağını düşündüm, biraz daha açarsanız sevinirim.
Biraz daha ayrıntı vermek gerekir ise
dbSAHIS ın
-TblSAHIS tablosunda ana babadı medeni hali dini uyruğu evlenme tarihi vs. şeklinde alanlar var.
-tblILETISIM , tbEGITIM, tblASKERLIK gibi şahısı ilgilendiren tablolar var.
-tblADRES_ID tabloları (dış) adres veritabanında ıd ile bağlantı kuracak. birden fazla kişi aynı adresi kullanabilir. yada bir kişinin birden fazla adresi (işyeri, yazlık, yurtdışı)


dbFIRMA
-tblFIRMA için ise Vergino, Ünvanı, Sektörü, kuruluş tarihi, kapanış tarihi gibi işyerleri için olacak özel alanlar oluşacak.
-tblORTAKLAR raporlarda kimlikno ile ile gerçek kişi ise dbSAHIS tablosundan tüzel kişi sie tblFIRMA tablosundan diğer bilgileri alınacak.
-tblILETISIM firmayı ilgilendiren tablolar var.
-tblADRES_ID tabloları (dış) adres veritabanında ıd ile bağlantı kuracak. birden fazla firma aynı adresi kullanabilir (Müteaahit-Taşeron, yada şirketler grubu). yada bir kişinin birden fazla adresi (işyeri, yazlık, yurtdışı)


-dbARAC
-tblARAC ta [plaka, kuyruk (uçak) ve ya gemi no], motor no, trfiğe çıkış, trafikten men vs. gibi alanlar.
-tblSIGORTA_VERGI de ARAÇNO, DÖNEMİ, TÜRÜ vs bilgiler.
-tblORTAKLAR yukarıdaki gibi. ancak bir aracın sahibi firma yada şahıs olacağından
-tblORTAKLAR raporlarda kimlikno ile ile gerçek kişi ise dbSAHIS tablosundan tüzel kişi sie tblFIRMA tablosundan diğer bilgileri alınacak.
-tblILETISIM (araçta İletişim olur mu demeyin araç telefonu ve GPRS kodu olamaz mı?) firmayı ilgilendiren tablolar var.

dbADRESde Ülkeler, Bölgeler, İller, İlAltBölgeleri (İst Avrupa, Anadolu), İlçeler, Muhtarlıklar(mahalle, köy, beldemahallesi), Cadde Sokaklar, BinaNoları, Bağımsız Bölüm Numaraları gibi tablolar var.
Dİğer veritabanlarına Bağımız bölüm numararları tablosundaki Bag_Bol_Id ile İletişim kuracağız.

Ayrı bir mdb dosyası içerinde ıluşturacağımız VeriYönetimi Adlı Bir form ile gerektiğinde dbADRES'e Cadde Sokak Ekleyip, değiştireceğiz. Gerektiğinde DbŞAHIS'a kişi ekleyip değiştireceğiz. Aynı kimlik no da değilse tabi
18/01/2011, 21:42

ozanakkaya

Sn. Hüseyin Sayaroyunbiri,

Tc.Kimlik numarası, Vergi numarası gibi bilgiler benzersiz olsa bile siz yine de birincil anahtar olarak kullanmayınız.
Tablonuza Birincil anahtar olarak otomatik sayı olan alan ekleyiniz, Tc.Kimlik numarası/Vergi numarasını tabloda veri türü sayı olarak kaydediniz.
18/01/2011, 22:17

HSayar

(18/01/2011, 21:42)sledgeab yazdı: Sn. Hüseyin Sayaroyunbiri,

Tc.Kimlik numarası, Vergi numarası gibi bilgiler benzersiz olsa bile siz yine de birincil anahtar olarak kullanmayınız.
Tablonuza Birincil analtar olarak otomatik sayı olan alan ekleyiniz, Tc.Kimlik numarası/Vergi numarasını tabloda veri türü sayı olarak kaydediniz.

1. ci tavsiyenizi tutabilirm (zaten otomoatik sayı ekletmiştim, değiştirmek kolay) ama ikiniyi maalesef tutamam. neden derseniz verilerimin içinde eskiden kalma 1000-1500 kayıt var onlar için excelden aktarmadan önce KNT#######0 şeklinde özel kod verdim
18/01/2011, 22:19

alpeki99

Çok sayıda farklı alan olduğu için şahıs, firma ve araçlar için farklı tablo yapmanız çok daha uygun olacak. Adreslerin ayrı bir tablo olması mantıklı gibi ancak aynı adresi bulmak sıkıntı olabileceği için tekrar mükerrer kayıtlara düşebilirsiniz dikkat etmek lazım.
1 2