0

我有一個表:數據庫設計問題 - 任務添加到用戶

USER {UserId, Email ...} 

此表是在1:1個的關係:

PROFILES {UserId, FirstName, LastName ...} 

我有一個角色表,其中用戶可以要求角色PROFESSOR。 一位教授可以給一些學生不同的任務。 所以我曾嘗試:

UserProfessors {ProfessorId, StudentId} // both related to profiles table 

這就是我如何連接教授和學生,但我補充說:

Tasks{TaskId, Title, Description ...} 

但不知道現在該怎麼加入這個表?
對這種設計有何建議?

回答

1

要加入任務的用戶,你想要的

ProfessorID -- links to Users 
StudentID -- links to Users 
TaskID 

字段ProfessorStudentTask表,或者你可以鏈接任務到UserProfessors

UserProfessorID -- links to UserProfessors via the primary key of UserProfessors 
TaskID 
1

我會做類似

1)表一個用戶柱的(用戶ID,用戶名,DOB, .....)

2)表2 教授與用戶ID,PROFID,DEPT,血乳酸血乳酸 教授

3)表3 學生與用戶ID,StudentID,血乳酸血乳酸

4)表四任務與像列(學生ID,ProfID,TaskID,bla bla bla)

+1

如果你做一些研究數據庫規範化,它會讓你更好地瞭解你需要做什麼來減少數據重做dancy,減少存儲空間和原子性,顯然你比其他任何人更瞭解你的業務需求,所以一旦你對DATA NORMALIZATION有了更好的理解,你將能夠比其他人更好地回答這個問題:) –

+0

在你離開之前,在構建數據庫之前,您應該充分注意如何進行數據庫設計,現在應該花點時間並且正確地做,而不是在遇到問題時再嘗試修復它。看看這是一個很好的閱讀http://sqlmag.com/database-performance-tuning/sql-design-why-you-need-database-normalization –