如何在phpmyadmin中关联同一个表的两个字段?

时间:2013-02-20 06:56:56

标签: sql database database-design phpmyadmin

我创建了一个存储useruid的表。

其他表存储用户的技能:

  • 如果uid = 111输入skill = aaa,它将存储到技能表,但我希望当uid = 111再次进入skill = aaa时,它不应存储在技能表中。
  • uid = 222输入skill = aaa,然后表格将存储该值。

基本上我想将uid和技能表的技能字段联系起来,以便每个唯一的uid应该有唯一的技能值,但对于不同的uid技能可以是相同的。< / p>

1 个答案:

答案 0 :(得分:1)

在两个ID UId和技能上使用复合主键。另外,要使两个表之间存在多对多的关系,以便每个用户都有很多技能,并且对于normalize表,最好以这种方式创建它:

Users 表格:

  • UserID主键,
  • USername
  • ...

Skills 表格:

  • SkillId主键,
  • SkillName
  • ...

联系表:

<强> UsersSkills

  • UserId外键引用Users(UserId)
  • SkillId外键引用Skills(SkillId)

然后重要的是在UserIdSkillId上制作复合主键,以便每个用户ID的技能都是唯一的。

在您的示例中,技能aaa将存储在Skills表中,ID为1,其中用户UserId = 111存储在Users表中。然后UsersSkills将包含类似:

的内容
UserId SkillId
 111   1