3

誰かがこれで私を助けてくれたら本当にありがたいです。1 対多の関係データベースにレコードを挿入する際に問題があります。シナリオは次のとおりです。技術者テーブル (techid、name、surname) とスキルテーブル (skillid、skillDesc、techid) があります。スキル テーブルには、techID 外部キーがあります。

技術者に割り当てられた複数のスキルを持つ技術者を挿入する SQL ステートメント/手順を作成するにはどうすればよいですか?

4

2 に答える 2

2

Technician(techid、name、surname)、Skill(skillid、skillDesc)、および Ability(skillid、techid) の 3 つのテーブルが必要だと思います。テーブルが 2 つしかない場合、技術者へのスキルの各マッピングには、冗長な情報である skillDesc のコピーを含める必要があります。代わりに、Technician オブジェクトと Skill オブジェクトを定義するテーブルと、それらの間の関係を取得する 3 つ目のテーブルが必要です。

最初に次のクエリを実行します。

insert into technician values (my_id, my_name, my_surname)

次に、スキルをループします (疑似コード):

for skill in skills:
    insert into Ability values(skill, my_id)
于 2012-08-08T21:08:48.443 に答える
1

Technician、Skill、TechnicianSkill の 3 つのテーブルが必要です。2 つのテーブルを使用すると、1 人の技術者に複数のスキルを割り当てることはできません。( IF TechID と SkillIDs が主キー )

Technician Table:
Columns: TechID, Name, SurName

Skill Table:
Columns: SkillID, SkillDesc

-- Put the TechID and SkillID as a foreign key in this table
TechnicianSkill Table:
Columns: TechID, SkillID 
-- You can make a primary key by using the two columns (TechID,SkillID) 
于 2012-08-08T21:07:39.263 に答える