Merhaba
Çok fazla alanları olan bazı programlar var. Mesela 50-100-150 ve daha fazla alanı olan program düşünün. Bu program parça parça TABLElerden oluşuyor. Müşteriye ait bilgilerin olduğu bir TABLE, aldığı ürünlere ait özellikleri belirten bir TABLE, parasal işlemlerin tutulduğu ayrı bir TABLE vb...
Bu veri tabanlarına girilen bilgileri daha sonra süzmek için yine tek tek TABLEler üzerinde mi sorgulama yapmayı tercih etmeliyim, yoksa bütün bu alanların birleştiği ayrıca tek bir TABLE yaratarak, tek tek kayıt girdiğim TABLElerdeki bilgileri aktararak mı yapmalıyım. Doğru mantık hangi olmalı? Teşekkür ederim.
Veri tabanı tek tek mi, Bütün olarak mı ele alınmalı
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- OnderTastan
- Üye
- Mesajlar: 38
- Kayıt: 01 Tem 2007 05:09
- Konum: İzmir
Veri tabanı tek tek mi, Bütün olarak mı ele alınmalı
"Kendini Affeder Gibi Başkalarını Affet, Başkalarını Azarlar Gibi Kendini Azarla..."
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Veri tabanı tek tek mi, Bütün olarak mı ele alınmalı
Eğer kayıtlar arası ilişki birden çoğa şeklindeyse bu tablolar kesinlikle ayrılmalı ve aralarında ilişki kuran bir numarasal alan olmalı. Mesela müşteri tablosu ayrı, aldığı ürünler tablosu ayrı olmalı. Çünkü bir müşteri birden fazla ürün alabilir. Eğer bu yapı tek tabloda tutulmaya çalışılırsa işin içinden çıkmak çok zor olacaktır. Çünkü her satırda müşteri bilgisi ve aldığı ürün olacak ve müşteri bilgisi olarak bir değişiklik yapmak gerektiğinde (adres tel vs.) o müşteriye ait tüm satırları değiştirmek gerekecektir. Halbuki, bu tablolar ayrı tutulursa o zaman tek satır müşteri bilgisi olacak ve sadece o satırda değişiklik yapmak yeterli olacaktır. Bu sakıncalı duruma ek olarak veri dosyası gereksiz olarak şişecek ve performans düşecektir.
Tablolar arası bire-bir ilişki olacaksa o zaman kayıtlar tek tabloda da tutulabilir. Mesela müşteriye ait adres bilgileri, kimlik bilgileri gibi farklı bilgiler çok fazla sütun içerdiğinden tabloları ayırmak isteyebilirsin ama her müşteriye ait bir kimlik bilgisi ve bir adres bilgisi bulunduğundan tek tabloda tutabilirsin. Tabi bunlar farklı programcılar tarafından geliştirilen farklı modüllerse tablolar ayrı olarak ta tutulabilir.
Asıl mesele her müşteri neler almış sorusu olacaksa join sorgularına göz atmalısın.
Tablolar arası bire-bir ilişki olacaksa o zaman kayıtlar tek tabloda da tutulabilir. Mesela müşteriye ait adres bilgileri, kimlik bilgileri gibi farklı bilgiler çok fazla sütun içerdiğinden tabloları ayırmak isteyebilirsin ama her müşteriye ait bir kimlik bilgisi ve bir adres bilgisi bulunduğundan tek tabloda tutabilirsin. Tabi bunlar farklı programcılar tarafından geliştirilen farklı modüllerse tablolar ayrı olarak ta tutulabilir.
Asıl mesele her müşteri neler almış sorusu olacaksa join sorgularına göz atmalısın.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .