Kütüphane Otomasyonu Veritabanı
Üniversitelerde her zaman ödev olarak verilen kütüphane otomasyonu için basit bir veritabanı örneği yaptım sizler için. Bunun C# da form uygulamasını ilerleyen zamanlarda devam edebiliriz.Veritabanımız toplamda 11 tablodur. Tablo adlarını aşağıda ve tablo açıklamalarını sonrasında detaylı bir şekilde açıklayacağım.Son kısımdaki linklerde ise MsSql,MySql ve PostgreSql için direk import edebileceğiniz sql dosyalarını paylaşıyorum.
Contents
- 1 Kütüphane Otomasyonu Veritabanı
- 1.1 Tablo Adları
- 1.2 User Tablosu
- 1.3 Bina Tablosu
- 1.4 Kat Tablosu
- 1.5 Salon Tablosu
- 1.6 Kitaplık Tablosu
- 1.7 Raf Tablosu
- 1.8 Yazar Tablosu
- 1.9 Kitap Tablosu
- 1.10 kitaplik_lokasyon tablosu
- 1.11 Customer Tablosu
- 1.12 Kitap Customer Tablosu

Tablo Adları
- Users
- Bina
- Kat
- Salon
- Kitaplık
- Raf
- Yazar
- Kitap
- Kitaplık Lokasyon
- Customer
- Kitap Customer
User Tablosu
User tablosu primary key hariç 7 sütundan oluşuyor.
user_name
sütunu uygulamaya giriş yaparken kullanılacak olan unique verilerdir
password
sütunu uygulamaya giriş yaparken kullanacağımız veridir. 32 karakter olmasının sebebi ise şifreleme olarak md5 şifreleme kullanacağımız içindir.
token
sütunu kullanıcını giriş yaptıktan sonra hala aktif olarak giriş yapmış kullanıcı mı kontrol edeceğimiz veridir.
name
sütunu uygulamaya giriş yapan kullanıcın adıdır
surname
sütunu uygulamaya giriş yapan kullanıcın soy adıdır
sütunu uygulamaya giriş yapan kullanıcın email adresidir
gsm
sütunu uygulamaya giriş yapan kullanıcın telefon numarasıdır
Bina Tablosu
Bina tablosu primary key hariç 7 sütundur
name
sütunu Kütüphane binasının adıdır.Bunu bu şekilde yapmamızın sebebi birden fazla kütüphane binası varmış gibi düşünüyoruz yada büyüyebilecek bir kütüphane olarak düşünüyor.
ekleyen_id
sütunu bu binayı ekleyen user tablosundaki id sini alıyoruz bunu ise işlem yaparken gönderilen tokenden sorgu atarak alacağız
eklenme_zaman
stünun bu bina eklenirken o anki zamanı alıp eklediğimiz veridir
is_active
sütunu boolean veridir eğer silinmemişse boolean değer truedır sildiysek false olarak update ediyoruz.
silen_id
sütunu bu binayı silen user tablosundaki id sini alıyoruz bunu ise işlem yaparken gönderilen tokenden sorgu atarak alacağız
silinme_zaman
stünun bu bina silinirken o anki zamanı alıp eklediğimiz veridir
silinme_aciklama
sütunu bu bina silinirken userdan bir açıklama talep edilir ve girilen veri bu alana kayıt edilir
Kat Tablosu
Kat Tablosu primary key hariç 8 sütundur.Bu tabloda o binaya ait katlar kayıt edilir
bina_id
sütunu kayıt edilecek olan verinin hangi binaya ait olduğu kayıt edilir
name
sütunu Binaya ait olan katın adıdır.
ekleyen_id
sütunu bu katı ekleyen user tablosundaki id sini alıyoruz bunu ise işlem yaparken gönderilen tokenden sorgu atarak alacağız
eklenme_zaman
stünun bu kat eklenirken o anki zamanı alıp eklediğimiz veridir
is_active
sütunu boolean veridir eğer silinmemişse boolean değer truedır sildiysek false olarak update ediyoruz.
silen_id
sütunu bu kat silen user tablosundaki id sini alıyoruz bunu ise işlem yaparken gönderilen tokenden sorgu atarak alacağız
silinme_zaman
stünun bu kat silinirken o anki zamanı alıp eklediğimiz veridir
silinme_aciklama
sütunu bu kat silinirken userdan bir açıklama talep edilir ve girilen veri bu alana kayıt edilir
Salon Tablosu
Salon Tablosu primary key hariç 8 sütundur.Bu tabloda o binaya ait katlar kayıt edilir.
kat_id
sütunu kayıt edilecek olan salonun hangi kata ait olduğu kayıt edilir.
name
sütunu Kata ait olan salonun adıdır.
ekleyen_id
sütunu bu salonu ekleyen user tablosundaki id sini alıyoruz bunu ise işlem yaparken gönderilen tokenden sorgu atarak alacağız.
eklenme_zaman
stünun bu salon eklenirken o anki zamanı alıp eklediğimiz veridir.
is_active
sütunu boolean veridir eğer silinmemişse boolean değer truedır sildiysek false olarak update ediyoruz.
silen_id
sütunu bu salon silen user tablosundaki id sini alıyoruz bunu ise işlem yaparken gönderilen tokenden sorgu atarak alacağız.
silinme_zaman
stünun bu salon silinirken o anki zamanı alıp eklediğimiz veridir.
silinme_aciklama
sütunu bu salon silinirken userdan bir açıklama talep edilir ve girilen veri bu alana kayıt edilir.
Kitaplık Tablosu
Kitaplık Tablosu primary key hariç 8 sütundur.Bu tabloda o binaya ait katlar kayıt edilir.
salon_id
sütunu kayıt edilecek olan kitaplığın hangi salona ait olduğu kayıt edilir.
name
sütunu salona ait olan kitaplığın adıdır.
ekleyen_id
sütunu bu kitaplığı ekleyen user tablosundaki id sini alıyoruz bunu ise işlem yaparken gönderilen tokenden sorgu atarak alacağız.
eklenme_zaman
stünun bu kitaplık eklenirken o anki zamanı alıp eklediğimiz veridir.
is_active
sütunu boolean veridir eğer silinmemişse boolean değer truedır sildiysek false olarak update ediyoruz.
silen_id
sütunu bu kitaplık silen user tablosundaki id sini alıyoruz bunu ise işlem yaparken gönderilen tokenden sorgu atarak alacağız.
silinme_zaman
stünun bu kitaplık silinirken o anki zamanı alıp eklediğimiz veridir.
silinme_aciklama
sütunu bu kitaplık silinirken userdan bir açıklama talep edilir ve girilen veri bu alana kayıt edilir.
Raf Tablosu
Raf Tablosu primary key hariç 8 sütundur.Bu tabloda o binaya ait katlar kayıt edilir.
salon_id
sütunu kayıt edilecek olan rafın hangi kitaplığa ait olduğu kayıt edilir.
name
sütunu Kitaplığa ait olan rafın adıdır.
ekleyen_id
sütunu bu rafı ekleyen user tablosundaki id sini alıyoruz bunu ise işlem yaparken gönderilen tokenden sorgu atarak alacağız.
eklenme_zaman
stünun bu raf eklenirken o anki zamanı alıp eklediğimiz veridir.
is_active
sütunu boolean veridir eğer silinmemişse boolean değer truedır sildiysek false olarak update ediyoruz.
silen_id
sütunu bu rafı silen user tablosundaki id sini alıyoruz bunu ise işlem yaparken gönderilen tokenden sorgu atarak alacağız.
silinme_zaman
stünun bu raf silinirken o anki zamanı alıp eklediğimiz veridir.
silinme_aciklama
sütunu bu raf silinirken userdan bir açıklama talep edilir ve girilen veri bu alana kayıt edilir.
Yazar Tablosu
yazar tablosu primary key hariç 8 sütundur.
name
sütunu yazarın adını tuttuğumuz sütundur.
surname
sütunu yazarın soyadını tuttuğumuz sütundur.
ekleyen_id
sütunu bu yazarı ekleyen user tablosundaki id sini alıyoruz bunu ise işlem yaparken gönderilen tokenden sorgu atarak alacağız.
eklenme_zaman
stünun bu yazar eklenirken o anki zamanı alıp eklediğimiz veridir.
is_active
sütunu boolean veridir eğer silinmemişse boolean değer truedır sildiysek false olarak update ediyoruz.
silen_id
sütunu bu yazarı silen user tablosundaki id sini alıyoruz bunu ise işlem yaparken gönderilen tokenden sorgu atarak alacağız.
silinme_zaman
stünun bu yazar silinirken o anki zamanı alıp eklediğimiz veridir.
silinme_aciklama
sütunu bu yazar silinirken userdan bir açıklama talep edilir ve girilen veri bu alana kayıt edilir.
Kitap Tablosu
kitap tablosu primary key hariç 9 sütundur.
yazar_id
sütunu bu kitabın yazarını tuttuğumuz yazarlar tablosundaki kayıdın id sini tuttuğumuz sütundur.
name
stünu bu kitabın adını tuttuğumuz sütundur.
basim_yili
sütunu bu kitabın hangi yılda basıldığını tuttuğumuz sütundur.
ekleyen_id
sütunu bu kitabı ekleyen user tablosundaki id sini alıyoruz bunu ise işlem yaparken gönderilen tokenden sorgu atarak alacağız.
eklenme_zaman
stünun bu kitap eklenirken o anki zamanı alıp eklediğimiz veridir.
is_active
sütunu boolean veridir eğer silinmemişse boolean değer truedır sildiysek false olarak update ediyoruz.
silen_id
sütunu bu kitabı silen user tablosundaki id sini alıyoruz bunu ise işlem yaparken gönderilen tokenden sorgu atarak alacağız.
silinme_zaman
stünun bu kitap silinirken o anki zamanı alıp eklediğimiz veridir.
silinme_aciklama
sütunu bu kitap silinirken userdan bir açıklama talep edilir ve girilen veri bu alana kayıt edilir.
kitaplik_lokasyon tablosu
kitaplik_lokasyon tablosu primary key hariç 5 sütundur. Bu tablo istenilen kitap hangi rafta olduğunu bulmak için kullanıyor bu tablodaki raf_id sinden left joinler yaparak hangi binada hangi katta hangi salonda hangi rafta olduğunu bulabiliriz.
kitap_id
sütunu kitap tablosundaki kayıdın id sidir.
raf_id
sütunu raf tablosundaki kayıdın id sidir.
ekleyen_id
sütunu bu kitaplik lokasyonu ekleyen user tablosundaki id sini alıyoruz bunu ise işlem yaparken gönderilen tokenden sorgu atarak alacağız.
eklenme_zaman
stünun bu kitaplik lokasyon eklenirken o anki zamanı alıp eklediğimiz veridir.
is_active
sütunu boolean veridir eğer silinmemişse boolean değer truedır sildiysek false olarak update ediyoruz.
Customer Tablosu
customer tablosu pimary key hariç 11 sütundur bu tablo kütüphaneden kitap alacak müşterileri tuttuğumuz tablodur.
customer_code
sütunu müşterinin kodunu tuttuğumuz sütundur.
name
sütunu müşterinin adını tuttuğumuz sütundur.
surname
sütunu müşterinin soyadını tuttuğumuz sütundur.
birth_date
sütunu müşterinin doğum gününü tuttuğumuz sütundur.
tc_kimlik_no
sütunu müşterinin tc kimliğini tuttuğumuz sütundur.
ekleyen_id
sütunu bu customerı ekleyen user tablosundaki id sini alıyoruz bunu ise işlem yaparken gönderilen tokenden sorgu atarak alacağız.
eklenme_zaman
stünun bu customer eklenirken o anki zamanı alıp eklediğimiz veridir.
is_active
sütunu boolean veridir eğer silinmemişse boolean değer truedır sildiysek false olarak update ediyoruz.
silen_id
sütunu bu customerı silen user tablosundaki id sini alıyoruz bunu ise işlem yaparken gönderilen tokenden sorgu atarak alacağız.
silinme_zaman
stünun bu customer silinirken o anki zamanı alıp eklediğimiz veridir.
silinme_aciklama
sütunu bu customer silinirken userdan bir açıklama talep edilir ve girilen veri bu alana kayıt edilir.
Kitap Customer Tablosu
kitap customer tablosu primary key hariç 8 sütundur. Bu tablonun amacı o kitabı müşterinin aldığını kitapları ne zaman aldığı ne zaman geri verdiğini tuttuğumuz tablodur.
customer_id
sütunu customer tablosundaki kayıdın id sidir.
kitap_id
sütunu kitap tablosundaki kayıdın id sidir.
alinma_date
sütunu ilk kayıt atılırken null kayıt atılır ve teslim edilmemiş kitaplar için is null kontrolleri yapılır. ve nullar daha geri alınmamış olur eğer alınmışsa update edilir
ekleyen_id
sütunu bu kitap customer kayıdını ekleyen user tablosundaki id sini alıyoruz bunu ise işlem yaparken gönderilen tokenden sorgu atarak alacağız.
eklenme_zaman
stünun bu kitap customer eklenirken o anki zamanı alıp eklediğimiz veridir.
is_active
sütunu boolean veridir eğer silinmemişse boolean değer truedır sildiysek false olarak update ediyoruz.
silen_id
sütunu bu kitap customer silen user tablosundaki id sini alıyoruz bunu ise işlem yaparken gönderilen tokenden sorgu atarak alacağız.
silinme_zaman
stünun bu kitap customer silinirken o anki zamanı alıp eklediğimiz veridir.
silinme_aciklama
sütunu bu kitap customer silinirken userdan bir açıklama talep edilir ve girilen veri bu alana kayıt edilir.
Verilen İndexler
Bina tablosunun indexi : is_active true olarak indexleme yapılıyor
kat tablosunun indexi : is_active true olarak indexleme yapılıyor ve bina_id indexleniyor
salon tablosunun indexi : is_active true olarak indexleme yapılıyor ve kat_id indexleniyor
kitaplık tablosunun indexi : is_active true olarak indexleme yapılıyor ve salon_id indexleniyor
raf tablosunun indexi : is_active true olarak indexleme yapılıyor ve kitaplik_id indexleniyor
yazar tablosunun indexi : is_active true olarak indexleme yapılıyor
kitap tablosunun indexi : is_active true olarak indexleme yapılıyor ve yazar_id indexleniyor
kitap_lokasyon tablosunun indexi : is_active true olarak indexleme yapılıyor , kitap_id-raf_id indexleniyor , kitap_id indexleniyor,raf_id indexleniyor
customer tablosunun indexi : is_active true olarak indexleme yapılıyor
kitap_customer tablosunun indexi : is_active true olarak indexleme yapılıyor , kitap_id-customer_id indexleniyor , kitap_id indexleniyor,customer_id indexleniyor
MsSql : Link
MySql : Link
PostgreSql : Link