Database design 如何选择属性和表?

Database design 如何选择属性和表?,database-design,rdbms,Database Design,Rdbms,我正在考虑学生注册系统的数据库设计。首先,系统将接受任何人的注册,其数据将被存储。然后管理员将检查表格并选择要接受的学生。我是否应该使用两个分开的表格,第一个是存储注册人的信息,第二个是存储录取学生的信息?或者我应该只使用一个表并使用属性(confirmedOrNot)来标记(0或1)该人员是否已被接受,如下图所示?被接受人还应在到期日前支付费用。否则,它们将从接受列表中删除。我还使用了一个属性来标记它。只有已接受并支付费用的人员才是系统的最终学生名单。这个设计合理吗?什么是更好的设计? 学生是

我正在考虑学生注册系统的数据库设计。首先,系统将接受任何人的注册,其数据将被存储。然后管理员将检查表格并选择要接受的学生。我是否应该使用两个分开的表格,第一个是存储注册人的信息,第二个是存储录取学生的信息?或者我应该只使用一个表并使用属性(confirmedOrNot)来标记(0或1)该人员是否已被接受,如下图所示?被接受人还应在到期日前支付费用。否则,它们将从接受列表中删除。我还使用了一个属性来标记它。只有已接受并支付费用的人员才是系统的最终学生名单。这个设计合理吗?什么是更好的设计?
学生是否被“录取”听起来像是学生的一种属性。自然的做法是将所有学生放在一个表中,并将“accepted”作为该表的一个属性。如果创建两个表,那么您可能会有两个表,其中包含所有相同的字段。当学生被录取时,您必须将其所有数据从“待定”表复制到“已录取”表,然后可能从“待定”表中删除记录。这比仅仅更改一个字段中的值要复杂得多。更重要的是,如果您保存在学生身上的数据发生更改,您必须记住更改两个表,并更改复制数据的代码。你正在为自己创造更多的工作。迟早有人会犯错误,使两个表中的字段大小不同,或忘记复制新字段等,然后您会丢失数据。

我将学生信息存储在注册表表中,将confirmedOrNot属性存储在RegisterCourseYear表中。是这样吗?确认不应该是注册表的属性吗?如果一个学生在某一年可以被确认,而在另一年不能被确认,那么是的,在年份记录中存储确认标志是有意义的。