473,375 Members | 1,307 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,375 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 9778
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.. ...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
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...

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.