2012-02-11 37 views
1

私は3つのテーブルの外部キーは、私は、学生の名前を与えられたときに設定されている学生からすべてのローンを検索し、書籍の詳細を主キーと外部キー

+0

を行くべき私は学生に<->ローンを仮定している1:1であるが、学生<->ブックス多くのです。多くの? –

+1

それは異なります。関係がどのように働くかを決める必要があり、そのことがテーブルデザインを決定づけるでしょう。ローンには1つの本または複数の本がありますか?学生とローンの関係についても同じ質問です。これらは、あなたが解決しようとしている問題を人々が理解するのを助けるためにあなたの投稿に含めるべきものです。 – nolt2232

答えて

6

はここで、このようなあいまいな要件とスタートです。したがって、このキーは残りのテーブルに

1

しない表示する必要があります

Student Loan Book 
- StudentID LoanID BookID 

を持っていますあなたが学生表にstudentIdを持っていると仮定すると、それは他の2つの表のStudentおよびforiegnでプライマリの最適な候補になります。

CREATE TABLE dbo.Students 
(
    StudentID INT PRIMARY KEY 
    -- , other columns about students 
); 

CREATE TABLE dbo.Loans 
(
    LoanID INT PRIMARY KEY, 
    StudentID INT NOT NULL FOREIGN KEY REFERENCES dbo.Students(StudentID) 
    -- , other columns about loans 
); 

CREATE TABLE dbo.Books 
(
    BookID INT PRIMARY KEY, 
    -- , other columns about books 
); 

CREATE TABLE dbo.StudentBooks 
(
    StudentID INT NOT NULL FOREIGN KEY REFERENCES dbo.Students(StudentID), 
    BookID INT NOT NULL FOREIGN KEY REFERENCES dbo.Books(BookID) 
); 
1

あなたが学生に基づいて検索したいので...他のテーブルの両方で外部キーとしてstudentidを使用する必要があります。

3
Student 
--------  
Studentid -PK 

Loan 
--------- 
Loanid - PK 
Studentid -FK 


Book 
------- 
Bookid -PK 
Loanid -FK 
+0

書籍はなぜローンに関連するのでしょうか? –

+0

学生がローンを取る。ローンには、1つ以上の本が含まれることがあります。これは私の意見では有効なモデルです。 – nolt2232

+0

興味深い...私は、学生がローンを取得し、書籍を購入すると仮定します。ローンオフィサーがあなたが購入した書籍を知りたいと思ったことがあるかどうかは分かりません。 –

関連する問題