2017-05-31 48 views
0

我正在考慮學生註冊系統的數據庫設計。首先,系統將接受任何數據將被存儲的人的註冊。然後管理員將檢查表格並選擇要接受的學生。我是否應該使用兩個分開的表格,第一個是存儲註冊人員的信息,第二個是存儲接受的學生的信息?或者我應該只使用一個表並使用屬性(confirmedOrNot)來標記(0或1)該人是否已被接受或不如下圖所示?被接受的人也應該在到期日之前支付費用。否則,他們將被從接受名單中刪除。我也用一個屬性來標記。只有被接受並支付費用的人才是系統的最終學生名單。這種設計合理嗎?什麼會是更好的設計? enter image description here如何選擇屬性和表格?

回答

1

無論學生是「接受」還是聽不到學生的屬性。自然要做的是把所有的學生放在一張桌子上,並在這張桌子上「接受」一個屬性。如果你製作兩張桌子,那麼你大概會有兩張桌子,裏面都有相同的字段。當學生被接受時,您必須將他的所有數據從「待處理」表中複製到「接受」表中,然後從「待處理」表中刪除該記錄。這比僅僅改變一個領域的價值更重要。更重要的是,如果您留在學生身上的數據發生變化,則必須記住更改兩個表,並更改複製數據的代碼。你正在爲自己創造更多的工作。遲早有人會犯一個錯誤,並在兩個表中的字段不同大小,或忘記複製一個新的領域等,然後你會丟失數據。

+0

我在RegisterCourseYear表中存儲了Register表中的學生信息和confirmedOrNot屬性。是對的嗎?應該確認還是不是Register表的屬性? –

+0

如果一個學生可以確認一年而其他一年未確認,那麼是的,將確認標誌存儲在年份記錄中是有意義的。 – Jay