我正在设计一个新的数据库,我有两个表,一个用户和一个技能表.用户可以拥有许多技能.什么是存储多种技能的最佳实践,逗号分隔的技能ID(1,2)或存储技能名称(PHP,Ruby)?这是数据库的简化版本.
用户表:
id int(),
name varcha(),
email varchar(),
skillID varchar()
ID | name | email | skillID |
1 | John Doe | johndoe@domain.com |1,2 |
2 | Jane Doe | janedoe@domain.com |2,3 |
3 | James Smith| jamessmith@domain.com|3,4 |
Run Code Online (Sandbox Code Playgroud)
技能表:
Id int(),s
skill varchar()
ID | skill |
1 | PHP |
2 | Ruby |
3 | ColdFusion |
4 | ASPX |
Run Code Online (Sandbox Code Playgroud)
如何检索技能ID为1和4的所有用户.提前感谢您的见解.
扩大@Akhil Sidharth的评论.
user table
userId
name
email
skill table
skillId
name
userSkills table
userSkillId
userId
skillId
Run Code Online (Sandbox Code Playgroud)
编辑:
我错过了你问题的最后一部分.
SELECT * FROM `userSkills` as `us` LEFT JOIN `user` as `u` ON us.`userId` = u.`userId` WHERE us.`skillId` = '1' OR us.`skillId` = '4'`
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
109 次 |
| 最近记录: |