Results 1 to 3 of 3
  1. #1
    Wabamdo is offline Novice
    Windows 7 32bit Access 2013
    Join Date
    May 2015
    Posts
    13

    Help on the table structure of a secondary school database


    Hi guys,I am developing a secondary school database fees module using Microsoft access 2013.The school contains classes from Form 1 to Form 4.Some students of the school are boarders while others are day scholars.These two student's categories pay different school fees amount.Fees is charged to the students twice per year and different classes i.e form 1 to Form 4 pay different fees amount.Please me on how i will better this table structure .
    Click image for larger version. 

Name:	table structure.JPG 
Views:	18 
Size:	116.2 KB 
ID:	20818


    Thank you in Advance.Any help will be appreciated very very much

  2. #2
    ranman256's Avatar
    ranman256 is offline VIP
    Windows Vista Access 2010 32bit
    Join Date
    Apr 2014
    Location
    Kentucky
    Posts
    9,528
    I see these tables
    tFees - different charges , BOARDER or DAY
    tClass - reading 101, rithmatic 201
    tClassSemi -classes from tClass used in a given Semester /yr
    tStudents - name, addr, zip
    tStudentClass - what class student takes / semester/year, ClassSemiID

    tStudentClass fields:
    StudentID
    ClassSemiID
    Grade

  3. #3
    Micron is online now Virtually Inert Person
    Windows 7 32bit Access 2007
    Join Date
    Jun 2014
    Location
    Ontario, Canada
    Posts
    12,815
    Another approach:

    tblClass .Type(text) .Desc(text)
    [e.g. Form1 / description]

    tblStudent .ID(unique number); Type(tblStntType.ID); .LName(text); FName(text); .Address(text); .City(text) etc.
    [e.g. 123; 1; Wabamdo; Robert; 123 Main St.; etc;

    tblStdntType .ID(unique number); .Type(text); .Desc(txt)
    [e.g. 1; Boarder; resides on campus]

    tblPayments StdntID(from tblStudent); Semester(number/txt); Type(tblFees.ID); .AmtPaid(number)
    [e.g. 123; Spring; 1; 100 (represents Name,semester,fee type from tblFees and amount paid/owing)
    see note below on this setup


    tblFees ID(unique number); .Type(text) .Amt(number)
    [e.g. 1;Boarder;100...2;Form1;300

    I would not have a balance field in tblPayments as it is not good practice to use stored calculated values.
    Also, relating ID's between fees and payments presents a caveat. You would need to understand that changing the fee would result in historical payment amounts being changed because the amount is being referenced. To avoid this, you could use a composite primary key of tblFees.ID and tblFees.Type, allowing many fees for a type because they'd all have a unique id. Or you could use tblFees as a record source for a combobox to pick a fee when filling out a form and avoid any such relational issue. I would do the latter.

    Sometimes I will use Excel to plan database table structure. It helps to plan the names of tables and fields, relationships, data types, and if needed, field sizes. Helps prevent confilcts such as text/number and integer/long too.

Please reply to this thread with any new information or opinions.

Similar Threads

  1. Replies: 4
    Last Post: 05-06-2015, 08:31 PM
  2. Sharing Objects with a secondary database.
    By jerepois in forum Access
    Replies: 3
    Last Post: 08-18-2014, 01:56 PM
  3. Replies: 3
    Last Post: 04-09-2014, 12:48 PM
  4. Replies: 6
    Last Post: 06-27-2011, 07:11 PM
  5. Need help a school report database
    By learnac in forum Database Design
    Replies: 1
    Last Post: 01-28-2010, 09:14 PM

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Other Forums: Microsoft Office Forums