Skema Database Sekolah
Saya sedang mengerjakan sistem sekolah sederhana yang menangani pendaftaran dan jadwal siswa. Lebih jauh, sistem harus menangani berbagai jenis sekolah seperti Taman Kanak-kanak, Dasar, Menengah, dan Tinggi (Pra-sekolah dan k12) ..
Saya bukan ahli dalam desain DB tetapi masih mengikuti apa yang saya bisa dari apa yang saya pelajari melalui membaca dan berlatih.
- Siswa
- Induk
- Student_parent (Jika ada lebih dari satu orang tua yang ingin dimasukkan ke dalam sistem)
- Sekolah (Di mana sistem dapat memeriksa siswa termasuk di tingkat mana (Dasar atau Menengah .. dll))
- Subjek (Semua mata pelajaran di sekolah)
- Kelas (Pada dasarnya Jadwal-Jadwal)
- Ruang Kelas (Setiap ruang dan lab di sekolah (Pada dasarnya fasilitas sekolah))
- Kehadiran (Belum)
- Marks (Belum)
Apakah hubungan tabel cukup atau perlu didesain ulang? Ada masalah dengan skema dasar ini? Apakah cukup untuk sistem? Bagaimana Menerapkan Ketentuan (Semester 1 dan Semester 2) serta Tahun? Bagaimana jika tahun itu berakhir. Bagaimana cara mentransfer siswa ke tahun baru (Bagaimana cara menerapkan ini)?
Saya berharap mendapatkan beberapa poin tentang perbaikan atau masalah dengan skema sebelum mulai memprogramnya.
Terima kasih
. . Edit: menerapkan saran John Herbert . . .
Menerapkan poin John kecuali yang terakhir karena tidak ada jurusan di sekolah dan jumlah siswa sangat subyektif terhadap tahun tersebut.
- mengubah nama tabel dengan prefiks untuk mengelompokkannya.
- Beberapa bidang diubah seperti yang disarankan oleh John untuk penelusuran dan pengelompokan yang lebih baik
- Menambahkan istilah tabel dan menghubungkannya dengan sekolah (KG- SD- Sec..etc)
- Ukuran bidang yang dimodifikasi dari Int (11) menjadi yang lebih kecil sesuai kebutuhan
Skema DB Setelah Mengedit
setelah menerapkan hal-hal ini seseorang tidak bisa tidak mengembara. Apakah saya perlu menambahkan indeks untuk kinerja di masa mendatang? Di mana indeks mungkin dibutuhkan?
Saya harap ini dapat bermanfaat bagi seseorang yang tertarik dengan desain DB.
Jawaban
Secara keseluruhan, saya pikir Hubungan Kunci Anda cukup jujur dan jelas sehingga saya dapat dengan mudah menemukan jalan saya. Anda mungkin akan menemukan beberapa tempat untuk diubah saat Anda membuat mock-up dan akhirnya mengkodekan prosedur tersimpan dan proses lainnya. Inilah pikiran saya saat saya melihatnya.
- Gantikan orang tua dengan sesuatu yang lebih umum, seperti wali. Penggunaan bahasa ini membuka pintu bagi figur otoritas lain untuk siswa, seperti kakek-nenek dan orang tua angkat, serta memungkinkan adanya bendera yang menunjukkan orang tersebut melakukan kontak darurat atau diizinkan untuk menjemput anak.
- Pisahkan bidang [Full_Name] menjadi dua bidang; [Given_Name] dan [Surname]. Ini membantu saat mengurutkan berdasarkan nama selama pemrograman. (Lebih baik jika kedua saudara perempuan Williams muncul bersebelahan dalam sebuah laporan daripada semua Mary di sekolah dikelompokkan bersama).
- Sarankan untuk memindahkan bidang [istilah] di bawah tabel [subjek] ke dalam tabel [kelas]. Bidang ini dapat digunakan untuk menunjukkan apakah Bobby Tables berada di kelas tersebut selama Musim Semi 2010 atau Musim Gugur 2009, dengan guru khusus tersebut di ruangan tertentu. Saya akan memiliki tabel lain yang memiliki rentang tanggal untuk istilah tersebut. (Sebagai catatan tambahan, INT (11) mungkin sedikit berlebihan untuk itu. Seratus tahun jangka waktu satu minggu hanya akan menghasilkan 5000 istilah, dengan hanya membutuhkan INT (4))
- Dalam hal meningkatkan siswa ke tahun depan dapat dilakukan dengan bidang baru di bawah tabel [siswa], dengan INT sederhana (2) untuk menunjukkan tahun pendidikan mereka. Prosedur tersimpan yang dijalankan pada akhir tahun ajaran dapat memeriksa kredit yang diperoleh dan menaikkannya.
- Pertimbangan dapat dibuat juga untuk memasukkan dalam tabel [subjek] dan [guru] akan menjadi departemen, seperti Matematika, Sains, atau Bahasa Inggris. Ini dapat digunakan untuk membantu mengelompokkan semua guru Sains, atau menampilkan semua kelas Sejarah yang tersedia untuk istilah itu, terutama jika sekolah tersebut cukup besar untuk memiliki lebih dari satu sesi kelas tertentu.