0

最近我被要求设计一个门户网站,学生可以上传他们的技术技能,如:HTML、PHP、C++ 等,大学可以根据必修和可选技能搜索学生。

最初,我想使用双列表存储学生及其相关技能的详细信息,其中第一列代表学生,第二列包含与该学生相关的所有技能,用逗号分隔。例如,001 HTML,C,C++,JAVA 002 C,JAVA 003 HTML,.NET ... ...

但是现在我在查询和寻找具有相关技能的学生时遇到了问题。我尝试了很多,但最终不知道如何实现这一目标。

任何有关存储技术和搜索算法等的指针都会有所帮助。非常感谢您的帮助。

谢谢

4

1 回答 1

0

处理这个问题的一个简单方法是拥有三个表。第一个表包含学生,并包含每个学生的唯一 ID。第二个表包含技能,并且每个技能都有一个唯一的 ID。第三个表用于交叉引用前两个表,有两列:“学生 ID”和“技能 ID”。

EG 假设技能表中有一个 ID 为 1 的“C”条目和 ID 为 2 的“C++”条目。我们有一个 ID 为 1 的学生同时了解 C 和 C++。我们交叉引用了两个条目,第一个条目的学生 ID 为 1,技能 ID 为 1,第二个条目的学生 ID 为 1,技能 ID 为 2。

当您需要找出学生拥有哪些技能时,您只需在交叉引用表中找到该学生 ID 的所有行。相反,如果您想找出哪些学生具有某种技能,您只需找到具有该技能 ID 的所有行。

于 2014-11-30T10:18:10.207 回答