主键和外键

时间:2012-02-11 04:32:18

标签: sql-server-2008 foreign-keys primary-key

我有3张桌子

   Student    Loan    Book
 - StudentID  LoanID  BookID

我需要设置哪些外键,所以当给出学生姓名时,搜索该学生的所有贷款并显示书籍详细信息

4 个答案:

答案 0 :(得分: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 :(得分:3)

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

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


Book
-------
Bookid  -PK
Loanid   -FK

答案 2 :(得分:1)

不确定您拥有哪些列,假设您在student表中有studentId,那么它将成为学生和其他两个表中foriegn的主要候选者。

答案 3 :(得分:1)

你必须在其他表中使用studentid作为外键...因为你想在学生的基础上搜索。所以这个键应该放在剩下的表中