-5

テーブル名:インターンシップ 、会社名の「skill_required」を保存したい XYZのようなスキルは: php 、 java などです mow 質問は会社登録時に指定するか、チェックボックス..などのテキストと保存方法それはデータベースにありますか?IDは?PHPの場合は1、Javaの場合は2

2番目。学生がインターンシップを検索するとき、興味のある分野で彼は php を指定し、他の学生は Java を指定します。会社は php と Java の両方でインターンシップを提供しているため、両方の学生検索で会社 xyz を表示する必要があります。そのフォームデータベースを取得する方法は? スキル名とスキルIDを持つスキル用に別のテーブルが必要ですか?

4

1 に答える 1

3

各企業を必要なすべてのスキルにリンクする個別の表を用意する必要があります。たとえば、次のCompany表です。

CompanyId  CompanyName
_________  ___________
1          BobCo
2          PeteCo
...

Internship...そしてあなたのテーブルに必要なスキル:

CompanyID  SkillID
_________  _______
1          1
1          2
2          1
...

...そして、Skillスキル ID をスキル名にマッピングする別のテーブルを作成できます。

SkillID  SkillName
_______  _________
1        PHP
2        Java
3        MySQL
...

たとえば、Java が skill2の場合、次のようにすることができます。

SELECT CompanyID FROM Internship WHERE SkillID=2;

このクエリは、Java を必要とする企業を返します。または、より複雑なクエリ:

SELECT CompanyName 
FROM Company JOIN Internship USING(CompanyID)
  JOIN Skill USING(SkillID)
WHERE SkillName = 'Java'

1 つの列に複数の値を入力しないでください。最初の正規形が崩れるためです。遭遇する可能性が高い問題の例とその修正方法については、そのリンクを参照してください。

于 2013-08-15T17:07:10.267 に答える