Okul Devamsızlık Otomasyonu Veritabanı (Yardım)

SiberWorm

Doçent
Katılım
3 Aralık 2009
Mesajlar
508
Reaksiyon puanı
5
Puanları
0
Bugün okuldan yeni aldığım proje ile karşınızdayım :)

Projenin İsmi: Okul Devamsızlık Otomasyonu

Proje Şöyle Olacak;

Sınıf listeleri veri tabanına kayıt edilecek,
O sınıfa ait tabi birde ders programı olacak
Kayıt edildikten sonra sınıf ismine tıklandığında karşıma o sınıfın ders programı ve sınıf listesi gelicek (buranın tasarımını bile tam aklımda canlandırmadım daha)

Bütün öğrencilerin karşısında "CheckBox"lar olucak okula gelmediyse işaretlenecek,geldiyse işaretlenmeyecek.

Daha başka ekletilerde olacak örneğin (Sms ve E-Mail) bunlar sonra yapılacak işler tabi.

Eğer bu projeyi yaparsam Bölüm dersim 5 gelecek :D

--------------------------------
Şimdi benim sorum şudur bu projenin veritabanını nasıl oluşturmalıyım örnek verebilirseniz sevinirim (Veritabanını kurmada zorlanıyorum)

Şimdiden teşekkürler.

Sistemi güzel bir şekilde kısaca şöyle açıklayayım;

Proje ismi: "Okul Devamsızlık Otomasyonu"
Projenin amacı;
1-) Okuldaki sınıfların isimleri kayıt edilecek
2-) Her sınıfların listesi kayıt edilecek
3-) Kayıt edilen her sınıfın birde DersProgramı olacak
4-) Öğrenci örneğin öğleden önceki 6 dersinden birine girmedi ama ögleden sonraki derslerine girdi o zaman o ögrenci yarım gün yok yazılmış olacak.
5-) Tümüne girmemiş veya (öğleden önceki bir ders ile öğleden sonraki birse) girmemiş tam gün yok yazılacak.


Şuanlık hocanın anlattığı budur :)
 

N3CAT1

Dekan
Emektar
Katılım
20 Nisan 2008
Mesajlar
6,608
Reaksiyon puanı
144
Puanları
243
Öğrenciler tablon şu şekilde olabilir:
- Id
- OgrenciNo
- OgrenciAdi
- OgrenciSoyadi
- OgrenciSinifi
- Cinsiyet
- VeliTel
- VeliMail


Devam tablosu da şu şekilde olabilir:
- Id
- OgrenciNo
- YoklamaTarihi
- YoklamaAlinanDers
- YoklamaDurumu
 

SiberWorm

Doçent
Katılım
3 Aralık 2009
Mesajlar
508
Reaksiyon puanı
5
Puanları
0
@N3CATI hocam teşekkürler hemen başlıyorum :)
 

annttiigs

Profesör
Katılım
7 Şubat 2007
Mesajlar
2,589
Reaksiyon puanı
24
Puanları
218
ders programı ve sınıflar tabloların da lazım. sonrasında öğrenci tablonun sınıf adı kolonu yerine sınıfID koyarsın. dersleri de aynı şekilde sınıfla ilişkilendirir sınıfID ile kullanırsın.

okul otomasyonunda öğrenci var, devam var da sınıfsız okul mu olur :).

kişiler için de harici bir tablo açar öğrenci no ile ilişkilendirirsen. ileride bir geliştirme anında kişi tablonu koruyarak basit bir ilişkilendirme ile geliştirebilirsin.

kısacası : DB projelerinde en önemli konudur DB yapılandırması. çünkü tüm kodu ona göre yazacaksın. yarın bir gün her isteğe bir tablo açarak ilerlemek zorunda kalabilirsin. Ya da tablolara sürekli kolon eklersin ve en kötü senaryo kötü tasarlanmış bir DB sonucu yeni bir istekte tüm kodu baştan yazmak zorunda kalabilirsin. ihtiyaçlarını iyi düşün ve DB ni ona göre hazırla.
 

SiberWorm

Doçent
Katılım
3 Aralık 2009
Mesajlar
508
Reaksiyon puanı
5
Puanları
0
ders programı ve sınıflar tabloların da lazım. sonrasında öğrenci tablonun sınıf adı kolonu yerine sınıfID koyarsın. dersleri de aynı şekilde sınıfla ilişkilendirir sınıfID ile kullanırsın.

okul otomasyonunda öğrenci var, devam var da sınıfsız okul mu olur :).

kişiler için de harici bir tablo açar öğrenci no ile ilişkilendirirsen. ileride bir geliştirme anında kişi tablonu koruyarak basit bir ilişkilendirme ile geliştirebilirsin.

kısacası : DB projelerinde en önemli konudur DB yapılandırması. çünkü tüm kodu ona göre yazacaksın. yarın bir gün her isteğe bir tablo açarak ilerlemek zorunda kalabilirsin. Ya da tablolara sürekli kolon eklersin ve en kötü senaryo kötü tasarlanmış bir DB sonucu yeni bir istekte tüm kodu baştan yazmak zorunda kalabilirsin. ihtiyaçlarını iyi düşün ve DB ni ona göre hazırla.

Sırf bunun için zaten programlamaya başlamadım.
 

mckenzie

Asistan
Katılım
5 Ağustos 2009
Mesajlar
329
Reaksiyon puanı
4
Puanları
0
Delphide de mi kodlayacaksın yoksa vbde mi?
 

annttiigs

Profesör
Katılım
7 Şubat 2007
Mesajlar
2,589
Reaksiyon puanı
24
Puanları
218
Öğrenciler tablon şu şekilde olabilir:

ogrencı tablosuna eleman yazmadan once kısı tablosuna kayıt yapıp oradakı
id ile buraya da ogrencı gırısı yapabılırsın. ekstra bır id ye gerek duymazsın


- kisiID //kisi tablosundan bu ID ile sorgulama yapılacak.
- OgrenciNo
- sınıfID
- Cinsiyet
- veliID


Devam tablosu da şu şekilde olabilir:
- Id
- OgrenciNo
- YoklamaTarihi
- YoklamaAlinanDers
- YoklamaDurumu


kisi : /ilgili bilgiyi "is" ile baslayan degerlerden kntrol ederek cekebılırsın

- id
- Ad
- Soyad
- isOgrenci
- isMezun
- isHoca
- isVeli
- telNo

sınıf: //ogrencı sayısını dırek sql sorgusu ıle olusturabılecegın ıcın ogrencı sayısına gerek yok

- id
- sınıfAdı

uzerınde bıraz daha normalızasyon yapıalbılır. bır taraftan nargıle ıcerken sımdılık bu kadar kurdum. butun kısılerı bir kısı tablosunda tutmak gereklı bence.

tabloları bu sekılde bol parcalı yapmak sonucunda sql join'lerine ihtiyacın olacak. ya da inner sql kullanman gerekecek. ama
bunun faydasını gelıstırılebılırlık olarak goreceksın.

---------- Post added at 22:23 ---------- Previous post was at 22:13 ----------

devam tablosundakı ID bilgisine de gerek yok. ogrencı no zaten unique olur. ama okul mezun numaralarını yenı kayıtlara verebılecegı ıcın kalabılır de. bu okulun numaralandırma politikasına gore degısır. tabı 100 yılsonra numaraların 9 10 hane olmaması ıcın Id kalabılır :) okul muhtemelen numaraları tekrar tekrar kullanır.
 

SiberWorm

Doçent
Katılım
3 Aralık 2009
Mesajlar
508
Reaksiyon puanı
5
Puanları
0
@annttiigs hocam süpersin.Yavaş yavaş oturtmaya başladım fakat "isMezun,isHoca" bunları anlamadım ?

Programın güzelcene sıralı şekilde asıl sistemini pm olarak atacağım size.En son bunları bi göz gezdirmesi yaparız.Eklenecek alan varsa ekleriz inş.Ondan sonrada şu tabloyu oluştururuz Allah'ın izniyle :)
 

orcnd

Dekan
Katılım
13 Ekim 2008
Mesajlar
6,394
Reaksiyon puanı
255
Puanları
243
facebook entergrasyonu da olsun.
tüm öğrencilerin facebook adresleri sisteme girilip yazılım tarafından rapor alanları takip edicek. raporlu olduğu halde facebook'ta gezinenleri yakalıyacak D:
 

SiberWorm

Doçent
Katılım
3 Aralık 2009
Mesajlar
508
Reaksiyon puanı
5
Puanları
0
@orcnd yok orçun abi o olmaz ya benide yakalarlar falan bide (: kendi kazdığımız kuyuya kendimiz düşmeyelim :=)
 

annttiigs

Profesör
Katılım
7 Şubat 2007
Mesajlar
2,589
Reaksiyon puanı
24
Puanları
218
isMezun -> öğrenci mezun mu? yoksa hala aktif mi? boolean alan. ya da tek elemanlı bir sayısal alan ( 1 / 0 )

isHoca -> kişi tablosu artık tek olduğu için. öğretmenleri de kaydedersin. bu durumda isHoca = 1, isÖğrenci = 0. isMezun=0 gibi tutacaksın tabloda.
 

SiberWorm

Doçent
Katılım
3 Aralık 2009
Mesajlar
508
Reaksiyon puanı
5
Puanları
0
@annttiigs hocam mezun olayını düşünmüyodum ama dursun bakalım şimdi oda.
 

annttiigs

Profesör
Katılım
7 Şubat 2007
Mesajlar
2,589
Reaksiyon puanı
24
Puanları
218
zararı yok bir alan sadece :)) ayrıca bu program olurda biterse ileride birileri - sen dahil- mezun olacak.
 

SiberWorm

Doçent
Katılım
3 Aralık 2009
Mesajlar
508
Reaksiyon puanı
5
Puanları
0
@annttiigs hocam;

Hayırlısıyla şu temeli oluşturalım.Gerisi Gelicek İnşallah
 

orcnd

Dekan
Katılım
13 Ekim 2008
Mesajlar
6,394
Reaksiyon puanı
255
Puanları
243
Tablolar
Öğrenci
no, sınıfı, adı, ve diğer bilgileri

sınıflar
no, adı, öğretmeni

öğretmenler
id, ad, branşı

ders programı
ders adı,sınıf, gun, saat

devamsizlik
oğrenci, tarih , gerekçe

ilişkilendirmeler
Öğrenci > sınıf = Sınıflar > no
Sınıflar > öğretmen = Öğretmen > no
Ders programı >sınıf = Sınıflar > no
Devamsızlık Öğrenci = Öğrenci > no
 

SiberWorm

Doçent
Katılım
3 Aralık 2009
Mesajlar
508
Reaksiyon puanı
5
Puanları
0
Tablolar
Öğrenci
no, sınıfı, adı, ve diğer bilgileri

sınıflar
no, adı, öğretmeni

öğretmenler
id, ad, branşı

ders programı
ders adı,sınıf, gun, saat

devamsizlik
oğrenci, tarih , gerekçe

ilişkilendirmeler
Öğrenci > sınıf = Sınıflar > no
Sınıflar > öğretmen = Öğretmen > no
Ders programı >sınıf = Sınıflar > no
Devamsızlık Öğrenci = Öğrenci > no


Eyw.orçun abi sağol.
 

SiberWorm

Doçent
Katılım
3 Aralık 2009
Mesajlar
508
Reaksiyon puanı
5
Puanları
0
@magnet hocamın'da belirttiği tablo şudur.Sizce Eksikleri varmı ?

Ders tablosu;
*Id
*OgretmenId
*DrsName
*DrsKod

DersProgrami Tablosu;
*Id
*DersId
*SinifId
*DersSaat
*HaftaGun

Devamsizlik Tablosu;

*Id
*DersId
*SinifId
*OgrenciId
*Tarih
*DersSaat

Ogrenci Tablosu;

*Id
*SinifId
*OgrNo
*OgrName
*OgrSex
*OgrTel
*VeliId
*Mezun

Ogretmen Tablosu;

*Id
*Name
*SName

Sinif Tablosu;

*Id
*OgretmenId
*Label

Veli Tablosu;

*Id
*VName
*VSName
*VTel
 

Junas

Doçent
Katılım
20 Haziran 2008
Mesajlar
836
Reaksiyon puanı
7
Puanları
18
Sizce Eksikleri varmı ?

Var.
Veritabanı tasarımında kolon isimlerini ya ingilizce yap yada Türkçe "DrsName" olmamalı.Bana sorarsan ingilizce yap.Bilmediğin kelimeleri araştır, literatürünü de geliştirmiş olursun.
 

SiberWorm

Doçent
Katılım
3 Aralık 2009
Mesajlar
508
Reaksiyon puanı
5
Puanları
0
Var.
Veritabanı tasarımında kolon isimlerini ya ingilizce yap yada Türkçe "DrsName" olmamalı.Bana sorarsan ingilizce yap.Bilmediğin kelimeleri araştır, literatürünü de geliştirmiş olursun.

Bu tablolar denemlikti hocam zaten.Hepsini Full Türkçe Yapıcam.İleriki projelerde İngilizce yapıcam inş. Söz :=)
 

annttiigs

Profesör
Katılım
7 Şubat 2007
Mesajlar
2,589
Reaksiyon puanı
24
Puanları
218
ben kişi bilgilerini bu kadar fazla bölmeme taraftarıyım ama artık seçim sana kalmış. sana en uygun olanı ki gördüğüm kadarı ile DB programlamada çok tecrübeli değilsin. basitinden başlamış olursun. üstteki tasarımı kullanabilirsin bence.
 

SiberWorm

Doçent
Katılım
3 Aralık 2009
Mesajlar
508
Reaksiyon puanı
5
Puanları
0
@ annttiigs; Kendini hızlı geliştirmeye çalışan bir çaylak desem yeridir :=)
 
Üst