2014-12-05 97 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

我在想你说的是表,数据库是表的集合。并且服务器可以托管多个数据库。

对于这个问题,我认为最好的答案是有一张学生表和一张学生证申请表。

我真的不会考虑为每个学生创建一个表格,因为这会迫使您为任何新学生创建表格。