2012-02-11 268 views
1

我有3個表主鍵和外鍵

Student Loan Book 
- StudentID LoanID BookID 

外國鍵做我需要設置這樣給學生名字時,從學生搜索所有貸款,並顯示書籍詳細

+0

我假設學生<->貸款爲1:1本,但學生<->書籍是多方面的:有多少? – 2012-02-11 04:42:15

+1

這取決於。你需要決定這些關係是如何工作的,這將決定桌子的設計。貸款只能有一本書還是多本書?學生和貸款之間的關係也是同樣的問題。這些東西應該包含在您的帖子中,以幫助人們瞭解您嘗試解決的問題。 – nolt2232 2012-02-11 04:46:44

回答

6

下面是用這種含糊的要求開始:

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,那麼它將成爲Student和Primary兩個表中的最佳人選。

1

你,因爲你要對學生的基礎上,搜索使用studentid在兩個其他表的外鍵...。所以這個關鍵應該去剩餘的表中

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

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


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

爲什麼一本書與貸款有關? – 2012-02-11 04:44:13

+0

學生拿出貸款。貸款可能包含一到多本書。在我看來,這是一個有效的模型。 – nolt2232 2012-02-11 04:54:18

+0

有趣...我假設一個學生獲得貸款,併購買書籍,我不知道我是否聽說過貸款官員想知道你買了什麼書的情況。 – 2012-02-11 05:00:16