473,418 Members | 2,337 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,418 software developers and data experts.

Table design for school registration system

Hi guys,
I was wondering if someone could help me a bit here. Im trying to
desing an electronic register system for a school. In terms of the
table design, I obviously need a Student Details table with such
attributes as ID, FNAME, SNAME, Age, Tutor Group, Class, Dependant.
The bit i'm having trouble conceptualising is the system needs to be
able to flag up absent students so there would need to be some sort of
relationship with the Student table. To view all the days that a
particular student has been absent what would I need to do? Would
registration attributes such as present/absent and date go in a
separate table?
Thanks a lot.
Shaz

Dec 31 '05 #1
3 9782
sh*************@gmail.com wrote:
Hi guys,
I was wondering if someone could help me a bit here. Im trying to
desing an electronic register system for a school. In terms of the
table design, I obviously need a Student Details table with such
attributes as ID, FNAME, SNAME, Age, Tutor Group, Class, Dependant.
Suggestion: Use only lower case letters in table and column names. You
can use other naming strategy. Like Capital first letter and each new
word starts with a capital letter. But what ever you do, don't mix up
different naming styles. This is just to make the work of the developers
(including you) easier.
The bit i'm having trouble conceptualising is the system needs to be
able to flag up absent students so there would need to be some sort of
relationship with the Student table. To view all the days that a
particular student has been absent what would I need to do? Would
registration attributes such as present/absent and date go in a
separate table?


You only need information about absent days in the table if the only
requirement is to get dates when particular student is absent. But be
carefull about requirements. Even one extra requirement can force you to
redesign the database.

Values in such table should be:
id (auto_increment, just to help with possible joins, updates or other
queries)
student_id (link to student table)
date ( The date when student was absent )

Now, if you feed in only the absent dates for each student, it is
trivial to make queries to get all absent dates for a student.

If student is absent for a year, you would now have to add something
like 200 rows (or how many school days there are in a year) in the
table. Or teachers need to insert a new row each day. Did you think
about this situation?

Another solution would be to insert the date range when the student was
absent. But would be the queries less trivial when searching dates when
student was absent. As weekends and other holidays are usually not
counted. But what if some particular day of weekend or some particular
holiday is changed to be a school day ( for example at my school we
sometimes had "party" or something at Saturday so that we didn't need to
come to school at Monday, because that was the last day of the semester.

What if a student is absent half a day or one hour, should that be
marked also? Should there be comments why a student was absent? Some
people can have good reasons for that, while others might be just having
fun at school time.

It is not hard to design a database (well I do that for living, so it
can't be that hard ;). But it is nearly impossible to get a perfect set
of requirements where every situation is considered. And without a
perfect set of requirements, the database won't be perfect and it will
cause problems during the implementation time.

But the example I gave you (id, student_id, date) is enough. If it is
okay that user enters each day one by one and only full days need to be
added.
Dec 31 '05 #2
I'm guessing that among other things, you want to track student absences by
class, not day. To get you started:

-You want a table Students with student information

-You want a table Courses with course information

-You want an associative table Attendance. Its primary key is ClassDate +
CourseID + StudentID. It has a column
Attended which takes on the values 'Y'/'N'

Now this a very simplified, but normalized data model..
In the real world courses have sections and are taught by instructors, etc.

Don't plan your database around the types of queries you have to deal with.
Capture the business rules that the school operates under.

Rich
<sh*************@gmail.com> wrote in message
news:11**********************@g14g2000cwa.googlegr oups.com...
Hi guys,
I was wondering if someone could help me a bit here. Im trying to
desing an electronic register system for a school. In terms of the
table design, I obviously need a Student Details table with such
attributes as ID, FNAME, SNAME, Age, Tutor Group, Class, Dependant.
The bit i'm having trouble conceptualising is the system needs to be
able to flag up absent students so there would need to be some sort of
relationship with the Student table. To view all the days that a
particular student has been absent what would I need to do? Would
registration attributes such as present/absent and date go in a
separate table?
Thanks a lot.
Shaz

Dec 31 '05 #3

"Aggro" <sp**********@yahoo.com> wrote in message
news:rT***************@read3.inet.fi...
sh*************@gmail.com wrote:
Hi guys,
I was wondering if someone could help me a bit here. Im trying to
desing an electronic register system for a school. In terms of the
table design, I obviously need a Student Details table with such
attributes as ID, FNAME, SNAME, Age, Tutor Group, Class, Dependant.


Suggestion: Use only lower case letters in table and column names. You
can use other naming strategy. Like Capital first letter and each new
word starts with a capital letter. But what ever you do, don't mix up
different naming styles. This is just to make the work of the developers
(including you) easier.
The bit i'm having trouble conceptualising is the system needs to be
able to flag up absent students so there would need to be some sort of
relationship with the Student table. To view all the days that a
particular student has been absent what would I need to do? Would
registration attributes such as present/absent and date go in a
separate table?


You only need information about absent days in the table if the only
requirement is to get dates when particular student is absent. But be
carefull about requirements. Even one extra requirement can force you to
redesign the database.

Values in such table should be:
id (auto_increment, just to help with possible joins, updates or other
queries)
student_id (link to student table)
date ( The date when student was absent )

Now, if you feed in only the absent dates for each student, it is
trivial to make queries to get all absent dates for a student.

If student is absent for a year, you would now have to add something
like 200 rows (or how many school days there are in a year) in the
table. Or teachers need to insert a new row each day. Did you think
about this situation?

Another solution would be to insert the date range when the student was
absent. But would be the queries less trivial when searching dates when
student was absent. As weekends and other holidays are usually not
counted. But what if some particular day of weekend or some particular
holiday is changed to be a school day ( for example at my school we
sometimes had "party" or something at Saturday so that we didn't need to
come to school at Monday, because that was the last day of the semester.

What if a student is absent half a day or one hour, should that be
marked also? Should there be comments why a student was absent? Some
people can have good reasons for that, while others might be just having
fun at school time.

It is not hard to design a database (well I do that for living, so it
can't be that hard ;). But it is nearly impossible to get a perfect set
of requirements where every situation is considered. And without a
perfect set of requirements, the database won't be perfect and it will
cause problems during the implementation time.

But the example I gave you (id, student_id, date) is enough. If it is
okay that user enters each day one by one and only full days need to be
added.

Two things:
1) talk to people who have to do the work they will define the data needed
2) ischoolad (works on windows w/o modification but needs a bunch of
capitalizations and case issued fixed to work in a Linux environment) and
openadmin (works straight up in both worlds) are two php based school
administration scripts that you might want to look at. openadmin is north
American based and ischoolad is Philippines based I think. I have used both
OpenAdmin is easier to setup and use for schools. Ischoolad was easier to
modify for use by a nonprofit with support groups.

HTH
al
Jan 2 '06 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

5
by: Sami | last post by:
Please bear with me, and if you answer this question, please do it step by step. I am new at Access, not at all sophisticated. I am using Office XP. This will need to be read in Access for...
3
by: Raj | last post by:
Hi, I am trying to add some more information to the table which already has a lot a data (like 2-3000 records). The new information may be adding 2-3 new columns worth. Now my questions are:...
8
by: Stewart Allen | last post by:
Hi Just asking for ideas on table design. The design I have is as follows: *tblBuildData* BuildID (PK) AutoNumber ManufactureDate SerialNumber
4
by: jean.ockert | last post by:
Greetings. Access version 2003 on an XP system I am using the template "Event Management" database as the primary database and need additional functionality added. I have a dance studio. ...
0
by: Volkan Arslan | last post by:
------------------------------------------------------------- LASER Summer School on Software Engineering Software engineering for concurrent and real-time systems Elba, Italy September 11 -...
0
by: Andreas Leitner | last post by:
Call for participation LASER Summer School on Software Engineering September 17-23, 2006 Elba Island, Italy This year's topic is Practical Programming Processes
0
by: Andreas Leitner | last post by:
Call for participation LASER Summer School on Software Engineering September 17-23, 2006 Elba Island, Italy This year's topic is Practical Programming Processes
3
by: piscogirl | last post by:
Hi there, I am about to build a small db in Access. Among the tables I plan to have are a Person table, an Event table, and an EventRegistration table. The EventRegistration table will...
13
by: ramprakashjava | last post by:
hi, i hav "java.lang.NullPointerException" error while Deleting table records using checkbox in jsp here i enclosed files help quickly plzzz.. ...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.