Verileri Sayı olarak kaydetme

1 2
19/08/2014, 23:55

abahceci

Arkadaşlar herkese merhaba,
Yapmakta olduğum veri tabanında formda verileri normal metin olarak görmek, buna karşılık daha sonra yapmayı düşündüğüm istatistiksel çalışmaları kolaylaştırmak adına tabloda sayısal olarak kaydetmek istiyorum. Bunun için 2 farklı yol kullandım (veri tabanında daha çok 1. yolu kullandım) ve şuan hangi yolun daha sağlıklı olacağını tam olarak kestiremiyorum.

1. yol: SABİTLER_1 tablosu oluşturdum ve hangi veriyi sayısal olarak kaydetmek istiyorsam onunla ilgili bir alan açtım (sabit_no, ve değişkenleri yan yana yazdım).
2. yol: SABİTLER_2 tablosu oluşturdum ve sabit_no, sabit_adi, sabit_aciklama ve sayisal_deger isimlerinde 4 alan oluşturdum ve değişkenleri alt alta yazdım.

Sayısal olarak kaydetmek istediğim alan sayısı belki biraz fazla, ama çok fazla da değil, sanırım 40-50 civarında.

Kendi veri tabanımda 1. yolu izlemem, ileride bana sıkıntı yaratır mı?

Şimdiden çok teşekkür ederim...
20/08/2014, 04:36

mehmetdemiral

Neden böyle bir karmaşık yol tercih ettiğinizi şahsen ben anlamadım. Siz verileri tabloya kaydederken sayısal kaydedip formda metin olarak görmek için mi bunu yaptınız? Eğer yanıtınız "evet" ise, bu işi bu şekilde yapmaya gerek yoktu. Tabloya hep sayısal değerler kaydedip, bunları kullanırken seçme sorgularıyla referans tablolarından metin değerlerini çağırabilirsiniz. Biz normalde veritabanı tasarlarken öyle yapıyoruz zaten. Bakın anlatayım:

Diyelim veri girdiğimiz tablomuzda veri alanı olarak "Tc kimlik" - "yaşadığı il" - "yaşadığı ilçe" alanları olsun. Yaşadığı il ve ilçe alanlarının değişken olduğunu varsayalım. Aksi taktirde zaten kişi bilgileri tablosunda yer alacaktı.

Biz bu kişiye ait "ad", "soyad", "ana adı", "doğum yeri", "doğum tarihi" ve "telefon" gibi bilgileri bu veri tablosuna kaydetmeyeceğiz. Sadece "tckimlik numarası" girilecek tabloya. Hatta o alan girilecek değil de "seçilecek" desek daha doğru. Çünkü bu iş için bir açılan kutu kullanmak daha kolay veri çağırmaya yarar.

İlk tablomuzda müşteri bilgileri var. Veri tablomuzda ise tek ortak alan "tckimlik no" alanı. Mantıklı olarak bir tabloya kaydedilen bu verileri benzersiz ortak alana göre forma getirebiliriz. Ama bu arada veri tablomuzda sadece tckimlik- ilkodu- ilçekodu gibi alanlar (sayısal değer olarak) saklanır. Mesela il alanında "34" görürüz. Oysa "iller" tablomuzda 01-Adana ile başlayan tüm illerin isimleri mevcuttur. İhtiyaç durumunda biz tablodaki sayıya göre sorgu üzerinden il adını çağırabiliriz. (tabii aynı tablodaki o ile ait her şeyi de sadece "34"ü depolayarak elde tutmuş oluruz. Aynı mantık ilçe için de geçerli. Bu böyle sürer gider.

Şimdi ben yanlış anlamadıysam siz veri alanlarını da kullanırken hem de metin değerlerini istendiğinde çağırabilmek istiyorsunuz. İşte gerçek yöntem bu anlattığım yöntem. Ben şahsen bu şekilde tabloları tasarlıyorum. Örnek isterseniz onu da hazırlayabilirim. Daha iyi anlamak isterseniz örnek üzerinde de anlatılabilir.
20/08/2014, 18:42

abahceci

Sayın Mehmet Demiral hocam, öncelikle ilgilendiğiniz için çok teşekkür ederim.
Eğer sizi çok yormayacaksa, örnek ekleyebilirseniz çok daha kolay anlayabileceğimi düşünüyorum.
Şimdiden tekrar çok teşekkür ederim...
21/08/2014, 03:29

mehmetdemiral

Aykut bey
Aşağıda eklediğim örneği inceleyin. 3 tane tablomuz var. Bunlardan birinde kişilerin tc-ad-soyad-doğ.tar ve doğum yeri bilgileri var. Bu tablo kişiler tablosu. Diğer tablomuz başvuru sebepleri tablosu. Onda da bir id no ve sebep açıklaması var. Şimdi asıl tablomuz verilere gelelim. Bu tabloda sadece 3 alan var. Tümü de sayılardan oluşuyor. Alanlar şöyle, "kayıtid", "tckimlikno", "basvurusebebi". Ama formda tüm veriler mevcut. Çünkü bir tabloda zaten var olan değerleri bir ipucu ile istediğimiz yerden çağırabiliriz. Örneğimizde de 3 ayrı tablodaki veri alanları ortak kriterler üzerinden entegre olarak kullanılabiliyor. Ve en önemlisi asıl veritabanı verilerimizin saklandığı tabloda sadece 3 alan saklanarak, hem de sayısal en küçük değerler kullanılıyor. Böylece veritabanı şişmeyecek ve istediğiniz gibi analiz yapabileceksiniz.
21/08/2014, 13:32

abahceci

Mehmet Hocam, örneğiniz için çok teşekkür ederim.
Şuan bulunduğum yerde ayrıntılı bakma fırsatım maalesef yok.
Ama akşama ilk işim bunu detaylı incelemek olacak...
Tekrar çok teşekkür ederim...
21/08/2014, 23:17

abahceci

Sayın Mehmet Demiral Hocam,
Emek sarf ederek örnek hazırladğınız ve paylaştığınız için gerçekten çok teşekkür ederim.
Verilerin sayısal olarak kaydedilmesi, daha sonra yapılacak olan istatistiksel işlemleri kolaylaştırabileceği gibi, benim daha önce düşün(e)mediğim, sizin söylediğiniz gibi veri tabanının şişmesini de engelleyecektir.
Benim göndermiş olduğum ilk örnek, sadece örnek olması açısından en basit şekilde yapmaya çalıştığım bir örnekti. Asıl veri tabanımda ise; bu mesajın ekinde göndereceğim gibi Toksisite Ölçeği isminde bir form var (başka formlarda da, bu forma göre daha az sayıda sayısal olarak kaydedeceğim alanlar var). Sizin yönteminizi kendi örneğime adapte edebilir miyim?
Başka tablolarda da sayısal olarak kaydetmek istediğim veriler için yine ayrı 3 tablo mu yapmalıyım?
Şimdiden çok teşekkür ederim...
1 2