我创建了一个存储user
和uid
的表。
其他表存储用户的技能:
uid = 111
输入skill = aaa
,它将存储到技能表,但我希望当uid = 111
再次进入skill = aaa
时,它不应存储在技能表中。 uid = 222
输入skill = aaa
,然后表格将存储该值。 基本上我想将uid
和技能表的技能字段联系起来,以便每个唯一的uid
应该有唯一的技能值,但对于不同的uid
技能可以是相同的。< / p>
答案 0 :(得分:1)
在两个ID UId
和技能上使用复合主键。另外,要使两个表之间存在多对多的关系,以便每个用户都有很多技能,并且对于normalize表,最好以这种方式创建它:
Users
表格:
UserID
主键,USername
。 Skills
表格:
SkillId
主键,SkillName
,联系表:
<强> UsersSkills
强>:
UserId
外键引用Users(UserId)
,SkillId
外键引用Skills(SkillId)
。然后重要的是在UserId
和SkillId
上制作复合主键,以便每个用户ID的技能都是唯一的。
在您的示例中,技能aaa
将存储在Skills
表中,ID为1,其中用户UserId = 111
存储在Users
表中。然后UsersSkills
将包含类似:
UserId SkillId
111 1