2012-03-06 43 views
0

,我有两个类型的工作职位 - 公司就业岗位和项目就业岗位。下面的是输入栏(在前端)每个:优选的数据库设计的就业岗位

*company* 
- company name 
- company location 
- company description 

*project* 
- project name 
- project location 
- project description 
- project type 

会得到更好的数据库设计的过程是什么 - 一个表,保持所有领域的独立 -

`job_post` 
- company_name 
- company_location 
- company_description 
- project_name 
- project_description 
- project_type 
- project_location 

一表结合字段 -

`job_post` 
- name 
- location 
- description 
- project_type 
- is_company (i.e., whether a company (True) or project (False) 

还是两张表或其他?为什么这种方式比其他方式更可取?

回答

2

你已经确定你的OP 3个主要对象;工作,项目和公司。每个对象都将有自己的属性,其中没有将关联到其他对象,所以我会建议一些类似于(示范只):

job 
    id 
    name 

company 
    id 
    name 

project 
    id 
    name 

link_job_company_project 
    job_id 
    company_id 
    project_id 

这种类型的模式将允许您添加对象在不影响其他对象的情况下,通过链接表把它们全部结合到一个'工作岗位'中。

5

取决于很多因素,包括这项工作的最大尺寸,我甚至会进一步规范数据比2个单独的表,也许有公司名称表,等等...在更快的查询连接多个表的结果而不是一个长长的永无止境的充满你所有信息的桌子。如果你想为项目添加更多的领域而不是公司?

总之,我肯定会使用多个表。

+0

+1是的。通常应该将事情分解成最小的部分以获得最大的灵活性。 – 2012-03-06 04:34:38

1

这无疑得到了与存储在表中的数据量有关。在抽象视图中,一张表看起来非常简单。但是,正如Ryan所说,如果明天需求发生变化,以及为一种类型的公司或项目添加更多列,那么该怎么办?如果您预测未来将在表中存储大量数据,即使我希望使用2个表,这将避免对大量数据进行不必要的过滤,这是性能开销。