2

我需要關於數據庫設計的建議。學費處理數據庫設計

我目前正在設計一個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在事務表向學生收取金額。這意味着,如果費用屬於每週類型,則每週一筆記錄將自動添加到交易表中,並將金額標記爲借記(或貸記,無論如何)。

希望它是有道理的。

我正在設計數據庫的正確路徑嗎?

您的意見和建議將不勝感激。

謝謝

比什努

+0

非常感謝您閱讀這篇文章。如果設計是正確的,我只是要求對設計發表評論,並且可以做些什麼來使設計更好。我要更新這個問題。 – 2012-04-16 05:43:17

+0

嗨@BishnuPaudel,我也在一個項目上工作,你能否給我提供一個你爲學生管理設計的數據庫。這是我謙卑的要求。 – 2015-09-19 19:17:09

回答

0

你的設計是正確的軌道上。一對夫婦的意見:

  • fees.fee_type大概應該是fees.fee_type_id - 假設你想使用自然連接命名。

  • 代替transaction.crtransaction.dr你應該建立在量的符號慣例,只是有這是基於其零側面解釋爲信用卡或借記單量場量上。您目前的設計允許一定數量的信用卡和借記卡(除非您有一個限制禁止這一點)。

  • 您的設計不適應的一件事是「未應用現金」。在您目前的設計中,學生的付款必須是針對特定的fee_student。如果學生進行預付定金,獲得獎學金,或者只是爲多種費用(學費,實驗室,體育)寫一張支票,該怎麼辦?在您當前的模型中,您不會跟蹤該單一(或未應用)付款。您應該有一個交易表,接受來自學生的付款,然後使用交匯表(您當前的transaction表)將付款應用於特定費用。這使您可以擁有未付餘額和未付款金額 - 兩者在實際應付賬款應用程序中都很常見。

+0

非常感謝Joel的解釋。我真的很喜歡有一個單獨的表來記錄學生付款的想法。我會給它一個鏡頭。關於獎學金,我正在考慮設立一個單獨的獎學金錶格來存儲有關獎學金的細節。在收到獎學金後,fee_student表中的折扣欄將更新,以保持該學生收到的折扣百分比。它聽起來如何? CHEERS – 2012-04-16 23:06:11

+0

@BishnuPaudel - 擁有獎學金錶是一件好事。如果您的獎學金被授予折扣費用,那麼使用'fee_student.discount'欄是一個好主意。如果你有時有現金獎勵,那麼你可以做類似於付款。 – 2012-04-17 01:44:07

0

我想你還應該在fee_student中加入到期日費用欄。

如果學校有10000學生,你將如何添加支付信息,面向全體學生????