gpt4 book ai didi

database-design - 学费处理数据库设计

转载 作者:行者123 更新时间:2023-12-01 06:41:13 25 4
gpt4 key购买 nike

我需要有关数据库设计的建议。

我目前正在为一所学校设计一个 DBMS。在设计类(class)和考试表之后,现在我来到了费用模块。

这是我到目前为止所做的。
我创建了 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

交易表将存储学生的所有付款以及为该学生收取的所有金额。

我正在考虑根据费用类型在交易表中存储向学生收取的金额。这意味着,如果费用类型为 WEEKLY,则每周一条记录将自动添加到交易表中,并且金额标记为借方(或贷方,等等)。

希望这是有道理的。

我在设计数据库的正确道路上吗?

您的意见和建议将不胜感激。

谢谢

比什努

最佳答案

你的设计是在正确的轨道上。一些评论:

  • fees.fee_type应该是 fees.fee_type_id - 假设您想使用自然连接命名法。
  • 而不是 transaction.crtransaction.dr您应该为金额的符号建立一个约定,并且只有一个金额字段,该字段根据金额在零的哪一侧被解释为贷方或借方。您当前的设计允许金额既是贷方又是借方(除非您有禁止这样做的约束)。
  • 你的设计不能适应的一件事是 “未使用的现金” .在您当前的设计中,学生的付款必须针对特定的 fee_student .如果学生预付押金、获得奖学金或只是为多种费用(学费、实验室、体育)写一张支票怎么办?在您当前的模型中,您不会跟踪单笔(或未应用的)付款。您应该有一个接受学生付款的交易表,然后使用交叉表(您当前的 transaction 表)将付款应用于特定费用。这允许您拥有未付余额和未应用金额——这两者在现实世界的应付账款应用程序中都很常见。
  • 关于database-design - 学费处理数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10168967/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com