Okul Veritabanı Şeması
Öğrenci kaydını ve programını idare eden basit bir okul sistemi üzerinde çalışıyorum. Ayrıca, sistem Anaokulu, İlkokul, Ortaokul ve Lise (Okul Öncesi ve k12) gibi farklı okul türlerini ele almalıdır.
Im DB tasarımında bir uzman ama yine ben öğrendiklerinizi dan ne ben izleyin okuma ve uygulama yoluyla.
- Öğrenci
- Ebeveyn
- Student_parent (Sistemde birden fazla veli olmak istiyorsa)
- Okul (Sistemin öğrencinin hangi seviyeye ait olduğunu kontrol edebileceği yer (İlk veya Orta .. vb.))
- Konu (Okullardaki tüm konular)
- Sınıf (Temelde Program-zaman çizelgesi)
- Sınıf (Okuldaki her oda ve laboratuvar (Temelde okulun tesisleri))
- Katılım (Henüz Değil)
- İşaretler (Henüz Değil)
tablo ilişkileri yeterli mi veya yeniden tasarlanması gerekiyor mu? Bu temel şemayla ilgili herhangi bir sorun var mı? Sistem için yeterli mi? Yılların yanı sıra dönemler (1. dönem ve 2. dönem) nasıl uygulanır? Yıl ne zaman bitiyor? Öğrencileri yeni yıla nasıl nakledebilirim (Bu nasıl yapılır)?
Programlamaya başlamadan önce şema ile ilgili iyileştirmeler veya sorunlar hakkında bazı noktalar almayı umuyorum.
teşekkür ederim
. . Düzenleme: John Herbert önerilerinin uygulanması . . .
Okulda hiçbir bölüm olmadığı ve yıla göre gerçekten öznel olan öğrenci sayısı olduğu için, John puanlarını sonuncusu dışında uygulamak .
- tabloları gruplamak için öneklerle değiştirildi.
- Daha iyi arama ve gruplandırma için John tarafından önerildiği gibi birkaç alan değiştirildi
- Tablo terimi eklendi ve okula bağlandı (KG- İlkokul- Sec..vb)
- Int (11) 'den gerektiği gibi daha küçük bir şeye değiştirilmiş alan boyutları
Düzenleme Sonrası DB Şeması
Bunları uyguladıktan sonra birisi yardım edemez ama dolaşır. Gelecekte performans için dizinler eklemem gerekecek mi? Endekslere nerede ihtiyaç duyulacak?
Umarım bu, DB tasarımıyla ilgilenen birine fayda sağlar.
Yanıtlar
Sonuç olarak, Anahtar İlişkilerinizin yeterince açık ve yeterince açık olduğunu düşünüyorum, böylece yolumu kolayca bulabilirim. Muhtemelen model oluştururken değiştirebileceğiniz birkaç yer bulacaksınız ve sonunda depolanan prosedürlerinizi ve diğer işlemleri kodlayın. İşte ona bakarken düşüncelerim.
- Ebeveyni, koruyucu gibi daha genel bir şeyle değiştirin. Bu dil kullanımı, öğrenci için büyükanne ve büyükbabalar ve evlat edinilen ebeveynler gibi diğer otorite figürleri için kapı açar ve kişinin acil bir iletişim kişisi olduğunu veya çocuğu almasına izin verildiğini gösteren bir bayrağa izin verir.
- [Full_Name] alanını iki alana ayırın; [Given_Name] ve [Surname]. Bu, programlama sırasında isme göre sıralama yaparken yardımcı olur. (İki Williams kız kardeşin bir raporda yan yana görünmesi okuldaki tüm Mary'lerin bir araya getirilmesinden daha iyidir).
- [Konu] tablosunun altındaki [terim] alanını [sınıf] tablosuna taşımayı önerin. Bu alan, Bobby Tables'ın o sınıfta 2010 İlkbaharında mı yoksa 2009 Sonbaharında mı, söz konusu öğretmenle belirli bir odada olup olmadığını belirtmek için kullanılabilir. Bu terimler için tarih aralıklarına sahip başka bir tablom olacaktı. (Bir yan not olarak, INT (11) bunun için biraz fazla olabilir. Yüz yıllık bir haftalık dönemler gerçekten yalnızca 5000 terimle sonuçlanır, yalnızca INT (4) gerekir)
- Öğrencilerin gelecek yıla terfi ettirilmesi konusunda, eğitim yıllarını belirtmek için basit bir INT (2) ile [öğrenci] tablosunun altındaki yeni bir alanla yapılabilir. Okul yılının sonunda çalıştırılan bir saklı yordam, kazandıkları kredileri kontrol edebilir ve onları yukarı taşıyabilir.
- [Konu] ve [öğretmen] tablolarının Matematik, Fen Bilimleri veya İngilizce gibi bir bölüme dahil edilmesi de düşünülebilir. Bu, tüm Fen öğretmenlerini bir araya getirmeye yardımcı olmak için veya o terim olan tüm Tarih derslerini göstermek için kullanılabilir, özellikle okul belirli bir sınıfın birden fazla oturumuna sahip olacak kadar büyükse.