一个简单的数据库设计问题一直困扰着我,我想我会在这里问。
假设我有一个数据库表,"Loan"
包含以下字段,
StudentIdentification, LoanDate, ReturnDate
该表用于跟踪每个借过东西的学生(不在数据库中)。由于每个学生都可以贷还贷再贷(但不能多次贷不还,贷后一定还贷),复合主键为
used: StudentIdentifcation and LoanDate
以这种方式存储数据还是使用 2 个表更好,
table 1: Loan ( StudentIdentification, LoanDate)
table 2: LoanHistory ( StudentIdentification, LoanDate, ReturnDate)
在这种情况下,贷款表的主键是
StudentIdentification
LoanHistory 表的主键是
StudentIdentification, LoanDate
每次学生返回时,“Loan”中的记录都会移动到“LoanHistory”表中,并更新 ReturnDate(在事务中完成)。
哪个更好?