I work in a school and my principal asked if I could create a database so that she can keep track of student benchmark scores for K-5th. I have been working on it since late November and pretty much done with it but have been modifying/adding things to it. I am using Access and VB6. I have not really worked with databases at all, just took a course in it about 3 years ago.

The following are the tables I am using
Teachers - Id and name
Students - Id, name, etc..
Class_roster - TeacherID and StudentID
GradeList - TeacherID and GradeLevel
Benchmarks - StudentID, Subject, and 10 scores

Here are a few things that need to be addressed and been thinking of how to go about it.

Teacher id #s will/might change as we lose or get new teachers
My Solution : Create tables with school year attached to it
Ex. Teachers0607 - (2006 - 2007 Teachers)

Students - New students and student withdrawals
Currently I have row associated with id# removed from table
My Solution : Have two seperate tables Active & Inactive to
store Student ID#s and leave the Students table alone OR use the field Status in the Students table to indicate Active, Inactive, or Graduate(left elementary)

Benchmarks and State tests - Every year there are different scores
of course.
My Solution : Create tables with school year attached to it
Ex. Benchmarks0607 - (scores for 2006-2007)

Of course now the relationships. What might be wrong with it?

http://www.daniweb.com/techtalkforums/attachment.php?attachmentid=2861&stc=1&d=1172023191


Sorry for the long post but I know there are a lot of smarter people here than I am:sad:

I think you should use an 'status_id' column and have a table of statuses.

Also, I think you should have a subjects table and a benchmarks table (you have 1-10 but what if in 2 months they want 20?)

Apart from that it looks ok.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.