外键怀疑-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名设计师从事多媒体工作。您的问题非常不清楚,请澄清您的问题。编辑后的问题,可能更清楚。谢谢我试着理解你的问题,所以我帮了你,但还是失败了!请澄清…我理解你的建议,我认为这解决了问题。但我不能完全肯定这是最好的做法。是的,这是一个领域。可能会解决这个问题并产生一个更大的问题