2012-02-11 4 views
1

나는 3 개 테이블 외래 키는 내가, 학생 이름이 주어 졌을 때 이렇게 설정하는 것이 학생의 모든 대출을 검색하고 책의 내용을기본 키와 외래 키

+0

I는 1 <-> 대출 학생 있으리라 믿고있어 나머지 테이블에 가야하나요? –

+1

다릅니다. 관계가 작동하는 방식을 결정해야하며 이는 테이블 디자인을 결정합니다. 대부에는 단 하나의 서적이나 둘 이상의 서적이 있습니까? 학생과 대출의 관계에 대해서도 같은 질문이 있습니다. 이들은 당신이 해결하려고하는 문제를 사람들이 이해할 수 있도록 귀하의 포스트에 포함시켜야 할 것들입니다. – nolt2232

답변

6

는 다음과 같은 모호한 요구 사항을 시작합니다. 많은 1 만 학생들 <-> 책 많은입니다 그래서이 키

1

하지 표시해야 할

Student Loan Book 
- StudentID LoanID BookID 

이 네가 어떤 칼럼을 가지고 있는지, 학생 표에 studentId가 있다고 가정하면, 다른 두 테이블에서 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

흥미 롭습니다 ... 나는 대출 담당관이 책을 구입했는지 알고 싶어하는 경우에 대해 들어 본 적이 있는지 알지 못합니다. –