Tables Structure Help

ZEEq

Member
Local time
Today, 09:10
Joined
Sep 26, 2022
Messages
93
Hello Everyone
I need your help and opinion on my current database design , i m having some problem dealing with discounts that are applied during the year
here is my current relationships report
Relationships.png
 
The picture of tables and relationships is really a reflection of your business rules. For readers to comment on the graphic, they need a description of the business and the associated rules.
 
The picture of tables and relationships is really a reflection of your business rules. For readers to comment on the graphic, they need a description of the business and the associated rules.
thanks @jdraw for your reply
Every Year thr are two types of Discounts
1. Standard Discount ( Includes Sibling Discounts , Scholarship's etc )
2.Additional Discount ( Depends on Students Parents Financial situation or in some special circumstances)
 
SessionYearT seems unnecessary. Just store the SessionYear value in SessionYearTypeT not Session_ID.

You also have a field called AcademicYear--does this really differ from SessionYear? You deliniate years in 2 different ways?

MonthID in StudentFeesDueT is unnecessary as well. Don't store a number that relates to another number--just store that other number. I am certain whatever table MonthID comes from is unnecessary the same way SessionYearT is.

IsCurrent in SessionYearTypeT seems unnecessary to. You have a StartDate and EndDate so you know if a SessionYear is current. You don't store values you can calculate with other data.

Your explanation about discounts make it seem they are dependent on the individual students. However none of your Discount tables link to a Student table. Seems your discount tables are at the wrong level--they should be linked to some Student table.

The same about discounts can be said about fees/dues. None of the fees/dues tables go to a specific student but to a StudentClassT.
 
SessionYearT seems unnecessary. Just store the SessionYear value in SessionYearTypeT not Session_ID.

You also have a field called AcademicYear--does this really differ from SessionYear? You deliniate years in 2 different ways?

MonthID in StudentFeesDueT is unnecessary as well. Don't store a number that relates to another number--just store that other number. I am certain whatever table MonthID comes from is unnecessary the same way SessionYearT is.

IsCurrent in SessionYearTypeT seems unnecessary to. You have a StartDate and EndDate so you know if a SessionYear is current. You don't store values you can calculate with other data.

Your explanation about discounts make it seem they are dependent on the individual students. However none of your Discount tables link to a Student table. Seems your discount tables are at the wrong level--they should be linked to some Student table.

The same about discounts can be said about fees/dues. None of the fees/dues tables go to a specific student but to a StudentClassT.
Thanks @plog for such detailed reply
Fees and discounts will change every year when student gets promoted to new class that's why i associated with class, academic year is actually sessionYear my bad i named it wrong
 
thanks @Pat Hartman for the suggestions
I corrected names lets just leave discount for the moment
1.SessionFeestructureT ( includes all the Fees for the session e.g Enrollment Fee, Transportation , Tuition Etc)
2.StudentFeeT ( Includes Fees applicable to that particular student)
and what changes do i need to make in studentClassFeeT ?
 

Attachments

  • Relationships N.png
    Relationships N.png
    34.9 KB · Views: 152
i removed that field please tell me any changes required in StudentFeeDueT
should i include Discount in StudentFeeDueT?
 

Attachments

  • Relationships.png
    Relationships.png
    39.2 KB · Views: 158

Users who are viewing this thread

Back
Top Bottom