データベース設計に関する提案が必要です。
私は現在、学校向けのDBMSの設計に取り組んでいます。コースと試験のテーブルを設計した後、今私は料金モジュールに来ました。
これが私がこれまでにしたことです。以下に説明する4つのテーブルを作成しました。
fee_type
-------------
fee_type_id PRIMARY KEY
fee_type TYPE OF FEE (MONTHLY, WEEKLY,ANNUAL,ONE TIME)
fees
-------------
fees_id PRIMARY KEY
fee_heading (eg. TUITION FEE,LAB FEE, HOSTEL FEE,SPORTS FEE)
amount (CURRENT CHARGE OF THE FEE, could change with time)
class_id (GRADE ID, GARDE 4, GARDE 5, GRADE 6)
fee_type TYPE OF FEE (MONTHLY, WEEKLY,ANNUAL,ONE TIME)
archived (FEE HEADING ARCHIVED FOR USE)
fee_student
-------------
fee_id (RELATED fee_id (FK))
student_id (RELATED student_id(FK))
effective_from (DATE FROM WHEN THE FEE APPLIES TO THE STUDENT)
amount (CHARGE AT THE TIME OF FEE ASSIGNMENT (applicable to particular student))
discount (DISCOUNT HONORED TO STUDENT IF ANY)
status (ACTIVE OR INACTIVE)
transaction
---------------
id PRIMARY KEY
date (date and time when transaction takes place)
fee_id (PAYMENT FOR)
student_id ({TO BE} PAID BY)
amount ( AMOUNT PAID/APPLIED)
description
cr ( yes or no)
dr (yes or no)
remarks
トランザクションテーブルには、学生によるすべての支払いと、その学生に請求されたすべての金額が保存されます。
学生に請求する金額をfee_typeに従ってトランザクションテーブルに保存することを考えています。つまり、料金がWEEKLYタイプの場合、週に1つのレコードがトランザクションテーブルに自動的に追加され、金額は借方(または貸方など)としてマークされます。
それが理にかなっていることを願っています。
私はデータベースを設計する正しい道を進んでいますか?
あなたのコメントや提案は大歓迎です。
ありがとうございました
ビシュヌ