2017-05-31 58 views
0

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

回答

1

无论学生是“接受”还是听不到学生的属性。自然要做的是把所有的学生放在一张桌子上,并在这张桌子上“接受”一个属性。如果你制作两张桌子,那么你大概会有两张桌子,里面都有相同的字段。当学生被接受时,您必须将他的所有数据从“待处理”表中复制到“接受”表中,然后从“待处理”表中删除该记录。这比仅仅改变一个领域的价值更重要。更重要的是,如果您留在学生身上的数据发生变化,则必须记住更改两个表,并更改复制数据的代码。你正在为自己创造更多的工作。迟早有人会犯一个错误,并在两个表中的字段不同大小,或忘记复制一个新的领域等,然后你会丢失数据。

+0

我在RegisterCourseYear表中存储了Register表中的学生信息和confirmedOrNot属性。是对的吗?应该确认还是不是Register表的属性? –

+0

如果一个学生可以确认一年而其他一年未确认,那么是的,将确认标志存储在年份记录中是有意义的。 – Jay