2014-12-05 123 views
-1

在我有一張學生全部申請工作表的表單中,並且我想記錄他們應用的位置的情況下,最好爲每個學生創建一個單獨的表格,並將其各自的應用程序放入其中或創建一個單獨的大表格那只是將應用程序鏈接到學生?多張桌子還是一個大桌子?

+2

沒什麼特別的,只有一個數據庫。 – Roy 2014-12-05 12:42:34

+2

規範化並沒有說明關於數據庫的任何信息。 – zerkms 2014-12-05 12:43:08

+2

你的「大」數據庫甚至不會聽起來很大。 – 2014-12-05 12:43:08

回答

1

當你說數據庫你的意思是表?

每個名詞應該映射到一個實體,在大多數情況下會通過一個單一的表,所以表示:

STUDENTS-<APPLICATIONS>-JOBS 

學生可以讓許多應用 的申請是由一個學生做

一個應用程序涉及單個作業 一個作業可能有很多應用程序。

Students 
-------- 
STUDENT_ID 
NAME 
... 

Applications 
------------ 
APPLICATION_ID 
JOB_ID 
STUDENT_ID 
APPLICATION_DATE 
... 

Jobs 
---- 
JOB_ID 
TITLE 
SALARY 
... 

根據需要添加更多列!

+0

所以你建議有3個表(不是數據庫,我的壞)一個爲學生,應用程序和可能的工作? – JabbaWook 2014-12-05 12:45:38

+0

在一個基本的水平,這將是你所需要的: – kayakpim 2014-12-05 12:46:42

+0

非常感謝這就是我現在想知道的。 – JabbaWook 2014-12-05 12:47:14

1

一個'大'數據庫,但有兩個單獨的表。

只要業務流程沒有變化,您也不需要修改數據庫。如果每個學生都有一個數據庫,當你想輸入更多的學生時,你將不得不創建新的數據庫。這已經是一個信號,表明你做得不對。

只需製作一張學生表和一張學生申請表,其中有一個student_id引用學生。這樣,您可以隨心所欲地存儲儘可能多的學生,並且每個學生可以隨心所欲地存儲多個應用程序,只有兩個表格,沒有冗餘數據,並且無需在要提交新記錄時修改數據庫。

如果你想知道爲什麼我把「big」放在引號中:兩張表幾乎沒有什麼關係,除非你要將每個學生存儲在你的國家以及他們在任何地方的每個應用程序中,否則它不會數據方面也很大。如果您的數據庫結構設置正確,像ProgreSQL這樣的專業數據庫可以輕鬆管理數百萬行。

+0

對於我認爲只是所有應用程序集合的「大」事情而言,我相信你們已經收集到了很多意見。謝謝你的澄清。 – JabbaWook 2014-12-05 12:46:53

+0

不客氣。有些人實際上認爲當他們達到1000條記錄時他們應該拆分表格,所以我認爲它提及它是無害的。很高興你不是其中之一。 :) – GolezTrol 2014-12-05 12:48:33

+0

你說的是Access數據庫嗎?在一個表中有1000000個記錄在相應的數據庫上是很常見的,例如,Oracle/SQLServer/Postgres,但這取決於你想要實現的目標 – kayakpim 2014-12-08 09:10:22

0

我在想你說的是表,數據庫是表的集合。並且服務器可以託管多個數據庫。

對於這個問題,我認爲最好的答案是有一張學生表和一張學生證申請表。

我真的不會考慮爲每個學生創建一個表格,因爲這會迫使您爲任何新學生創建表格。

相關問題