我有一个问题被“作家”阻止。我正在为 Mysql 中的网络应用程序构建数据库。我有两个表,我们将它们称为用户和作业。我想要另一张 table ,我们称之为技能。现在我想要的是一种将用户与他们拥有的技能联系起来的方法,以及另一种将工作与同一组技能联系起来的方法。我认为在保持一切正常化的同时做到这一点的唯一方法是基本上为每个用户和每个作业提供完整的作业列表。当然这太糟糕了,我无法接受,更何况以后添加技能或删除技能将是一场噩梦。
那么我该如何去做呢?我唯一必须拥有的是用户表(键 ID UserID)、作业表(键 ID JobId)和技能表(键 ID SkillID),我似乎无法想出添加表\行\或列的解决方案,并且我肯定正在寻求更有知识的人的答案。
最佳答案
您需要两个额外的映射表:user_skills
将具有 UserID
和 SkillID
,并使用它们的唯一组合作为(主)键。同样,job_skills
将 JobID
和 SkillID
再次使用组合的唯一键。有了该架构,只需简单查询即可获取您需要的任何数据。
关于mysql - 如何最优地构建此表,每个用户的技能基于另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30749802/