最近我被要求设计一个门户网站,学生可以在那里上传他们的技术技能,比如: HTML,PHP,C++等,大学可以根据必选和可选技能来搜索学生。
最初,我想使用一个两列的表来存储学生及其相关技能的详细信息,其中第一列表示学生,第二列由与该学生相关的所有技能组成,用逗号分隔。例如,001HTML、C、C++、Java002C、Java003HTML、.NET……
但是现在我在查询和搜索有相关技能的学生时遇到了问题。我尝试了很多,但最终没有任何线索可以实现这一点。
任何关于存储技术和搜索算法等的指针都会很有帮助。非常感谢您的帮助。
谢谢
发布于 2014-11-30 18:18:10
处理此问题的一种简单方法是使用三个表。第一个表包含学生,每个学生都有一个唯一的ID。第二个表包含技能,并且每个技能都有一个唯一的ID。第三个表用于交叉引用前两个表,它有两列:"Student ID“和"Skill ID”。
例如,假设技能表有一个ID为1的"C“条目和一个ID为2的" C++”条目。我们有一个ID为1的学生,他知道C和C++。我们在交叉引用中放置了两个条目,第一个条目的学生ID为1,技能ID为1,第二个条目的学生ID为1,技能ID为2。
当你需要找出一个学生拥有什么技能时,你只需在交叉引用表中找到与该学生ID对应的所有行。相反,如果你想找出哪些学生拥有某一技能,你只需找到具有该技能ID的所有行。
https://stackoverflow.com/questions/27212070
复制相似问题