0

最近私は、学生が HTML、PHP、C++ などの技術スキルをアップロードできるポータルの設計を依頼されました。大学は、必須およびオプションのスキルに基づいて学生を検索できます。

最初の列は学生を表し、2 番目の列はその学生に関連するすべてのスキルをカンマで区切ったもので構成されています。例えば、001 HTML,C,C++,JAVA 002 C,JAVA 003 HTML,.NET ……

しかし今、関連するスキルを持つ学生のクエリと検索で問題に直面しています。私は多くのことを試みましたが、これがどのように達成できるかについての手がかりがありません。

テクニックの保存やアルゴリズムの検索などに関する指針は役に立ちます。助けていただければ幸いです。

ありがとう

4

1 に答える 1

0

これを処理する簡単な方法は、3 つのテーブルを用意することです。最初のテーブルには学生が含まれ、各学生の一意の ID が含まれています。2 番目のテーブルにはスキルが含まれており、スキルごとに一意の ID があります。3 番目のテーブルは、最初の 2 つを相互参照するためのもので、「学生 ID」と「スキル ID」の 2 つの列があります。

EG スキル テーブルに、ID 1 の「C」のエントリと、ID 2 の「C++」のエントリがあるとします。C と C++ の両方を知っている ID 1 の学生がいます。2 つのエントリを相互参照に入れます。最初のエントリには学生 ID 1 とスキル ID 1 があり、2 番目のエントリには学生 ID 1 とスキル ID 2 があります。

生徒がどのようなスキルを持っているかを調べる必要がある場合は、相互参照テーブルでその生徒 ID のすべての行を見つけるだけです。逆に、どの学生が特定のスキルを持っているかを調べたい場合は、そのスキル ID を持つすべての行を検索するだけです。

于 2014-11-30T10:18:10.207 に答える