1

私が作成しているデータベースの設定方法に関するガイダンスを探しています。質問をする最善の方法は、具体的なシナリオを記述することです:複数のレコードを参照するデータベーステーブル

私は学校の学生 - 従業員に関する情報を保持するデータベースを持っています。

私は、特定の学期についての情報を含む「Semesters」という1つのテーブル(「秋/春/夏」、年など)があります。

特定の学生 - 従業員に関する情報(名前、職種、開始日、終了日など)を含む「従業員」という別のテーブルがあります。私はまた、どの学期に従業員が雇われたかを示す「Semesters」表への参照を持っていたいと思います。たとえば、「従業員」テーブルの1つの列は、この特定の従業員が「Fall2010、Spring2011、Fall2011」の学期中に働いていたことを教えてくれます。

問題は、1つのフィールドで複数のレコードを参照する方法がわかりません。

私はこれがかなり一般的なシナリオであると確信しています、私はそれについてどうやって行くのか分かりません。 MS AccessまたはSqlServerを参照する回答が優れています。

ありがとうございました。

+0

これは宿題のように聞こえる。もしそうなら、そのタグを追加するかもしれません。 2つのエンティティ間のリンクテーブルを使用して多対多の関係を作成するのは一般的です。 – Suirtimed

+0

宿題ではなく、私が取り組んでいるプロジェクト - 私の学校用紙のためのシンプルなアプリケーションの構築。 – Eric

答えて

2

これは多対多の関係のようです。そのような場合は、おそらくjunction tableを利用するでしょう。

従業(EMPID、名)

1 bob 
2 moe 
3 george 

学期(semidの、名)

1 fall 2010 
2 spring 2010 

EmploymentHistory(EMPID & semidの)

1 1 (bob was employed fall 2010) 
1 2 (bob was employed spring 2010) 
2 2 (moe was employed fall 2010) 
+0

私はそれを今得ます。ジャンクションテーブルのことは聞いたことがありませんが、私はこれを考えていたはずです。ありがとう。 – Eric

+0

確かに、あなたのプロジェクトには最高の運があります! –

+0

Wikiは、資格をもたない経験の浅い人によって明白に書かれています。彼らは1つの名前を持つ技術的な項目のすべての種類の愛らしい名前を使用します。多対多リレーションのみ(2つのFKのみ)をホストするテーブルのリレーショナル用語は** Associative ** Tableです。データが含まれている場合は、単なる表です。 IDEF1Xの用語では、** Dependent **テーブルです。 – PerformanceDBA

1

Employeesテーブル(従業員ではありません)から、Semesterテーブル(Semestersではなく)にいくつかの外部キーを使用してこれを実行できます。

従業員が働いた学期を把握したい場合は、それを従業員と多対多でSemesterを使用して1対多数のWorkHistoryテーブルに正規化します。

関連する問題