多个表还是一个大表?

时间:2014-12-05 12:39:00

标签: sql database postgresql

在我有一张所有申请工作的学生表并且我想记录他们申请的地方的情况下,更好的做法是为每个学生创建一个单独的表,并将他们的个人申请单独创建或创建一个单独的大只是将应用程序链接到学生的表格?

3 个答案:

答案 0 :(得分:1)

一个'大'数据库,但有两个单独的表。

只要业务流程没有变化,您就不需要修改数据库。如果每个学生都有一个数据库,那么当您想要输入更多学生时,您将不得不创建新的数据库。这已经是一个你没有做对的信号。

只需创建一个学生表和一个学生应用程序表,其中包含一个引用学生的student_id。这样,您可以根据需要存储尽可能多的学生,每个学生可以存储多个应用程序,只有两个表,没有冗余数据,并且无需在要提交新记录时修改数据库。

如果你想知道为什么我把''大'在引号中:两张表并不多,除非你要将你所在国家的每个学生以及他们在任何地方的每个应用程序存储起来,否则它在数据方面也不会很大。如果您的数据库结构设置正确,像ProgreSQL这样的专业数据库可以轻松管理数百万行。

答案 1 :(得分:1)

当你说数据库时,你的意思是表吗?

每个名词都应该映射到一个实体,在大多数情况下,实体将由一个表来表示:

STUDENTS-<APPLICATIONS>-JOBS

学生可以申请许多申请 申请由单个学生提出

应用程序涉及单个作业 一份工作可以有很多申请。

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

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

Jobs
----
JOB_ID
TITLE
SALARY
...

根据需要添加更多列!

答案 2 :(得分:0)

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

对于这个问题,我认为最好的答案是有一个学生表,以及一个学生ID的应用表。

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