外键怀疑-mysql

外键怀疑-mysql,mysql,database,database-design,Mysql,Database,Database Design,请回答一个简单的问题。我有三张桌子 集团 id area 1 Multimedia 4 Education 就业 id foreign key(GROUP) job 1 1 designer 2 4 professor 3 1 copy 现在假设我有这个 特定属性 id foreign key (Employment)

请回答一个简单的问题。我有三张桌子

集团

id    area
1   Multimedia
4   Education
就业

  id   foreign key(GROUP)     job
   1    1                   designer
   2    4                   professor
   3    1                   copy
现在假设我有这个

特定属性

id  foreign key (Employment)      properties
1   1                             type of contract
2   1                             number of jobs 
3   2                             duration contract (no type of contract)
4   2                             number of jobs
在本例中,设计师和教授拥有工作的属性编号。所以基本上问题是,我需要重复每个职业的工作数量?有什么办法可以避免吗?或者,我可以有8个不同的工作8外键的工作数为例?一个给设计师,另一个给教授,另一个给复制品,等等?这样,外键1 | | 2 | | 3中包含了第一批作业

大概是这样的:

**SpecificProperties**

    id  foreign key (Employment)      properties
    1   1                             type of contract
    2   1||2||3||4                    number of jobs 
    3   2                             duration contract (no type of contract)

谢谢

您可以在其他表格中添加属性名称,如

Properties
id  name
1   type of contract
2   number of jobs 
3   duration contract (no type of contract)
然后使用 特性

foreign key (Employment) foreign key (Properties)
1                        1
1                        2
2                        3
2                        2
作为反映多个关系的连接表,一个或多个作业可以有一个或多个属性,所以不必为每个作业添加“作业数”,只需从属性表中添加其id即可

@评论 但如果“作业数”是一个字段,而不仅仅是要显示的文本,那么它不应该作为行值出现在SpecificProperties中。相反,它应该作为列名放在某个地方,但不能与合同信息放在一起。 例子: 鲍勃是一名多媒体设计师,从某个日期一直工作到另一个日期,签订了一份x型合同,价值不菲,诸如此类。
带有列(id、用户id、工作id、开始日期、结束日期、工资)的表合同(或雇佣)可以保存有关信息,但由于更多人可以做完全相同的工作,以避免存储冗余数据,因此我们可以使用外键job_id来保存带有列(id、组id、工作名称、可用编号)的Jobs表。所以我们知道,不管他们实际得到了什么合同,我们总共可以有10名设计师从事多媒体工作。

您的问题非常不清楚,请澄清您的问题。编辑后的问题,可能更清楚。谢谢我试着理解你的问题,所以我帮了你,但还是失败了!请澄清…我理解你的建议,我认为这解决了问题。但我不能完全肯定这是最好的做法。是的,这是一个领域。可能会解决这个问题并产生一个更大的问题