Database 数据库设计问题,你怎么看?

Database 数据库设计问题,你怎么看?,database,database-design,relational-database,Database,Database Design,Relational Database,我的系统中有以下实体:公司,职位,申请人。在职位和申请人之间存在多对多关系,但当前的模型没有显示公司和申请人之间存在多对多关系 你觉得有一个包含公司id、职位id和申请人id的加入表有意义吗?或者我应该有一个加入公司和职位的表,还有一个加入职位和申请人的表,我不这么认为。您可以通过加入职位获得给定公司的申请人 我认为公司和个人之间的关系在他们从申请人转变为员工时变得非常重要。我不会像你建议的那样为它建模。不推荐参考公司吗?因为如果是这样的话,您只需要加入职位和应聘者的表,并通过职位获取应聘者和公

我的系统中有以下实体:
公司
职位
申请人
。在
职位
申请人
之间存在多对多关系,但当前的模型没有显示
公司
申请人
之间存在多对多关系


你觉得有一个包含公司id、职位id和申请人id的加入表有意义吗?或者我应该有一个加入公司和职位的表,还有一个加入职位和申请人的表,我不这么认为。您可以通过加入
职位
获得给定
公司
申请人


我认为
公司
和个人之间的关系在他们从
申请人
转变为
员工
时变得非常重要。我不会像你建议的那样为它建模。

不推荐参考公司吗?因为如果是这样的话,您只需要加入职位和应聘者的表,并通过职位获取应聘者和公司之间的关系。公司和职位之间的关系是什么?@user306848是这样的,但如果我想找到一家公司有多少应聘者,我必须用三种方法join@TeodorTalov我懂了,但是你应该考虑达菲莫的答案。@TeodorTalov你不能把三路连接隐藏在一个视图后面吗?或者这是一个性能问题(尽管正确的索引可能会有所帮助)?除此之外,如果从多对多表到
位置的FK不仅仅是
位置id
,而是一个复合的
外键(位置id,公司id)引用位置(位置id,公司id)
,然后,您可以通过多对多表直接加入
申请人
公司
表,而无需使用
职位
。复合主键不容易处理,但有助于避免某些连接。