我正在研究具有不同類型用戶的應用程序,即學生,導師和管理員。然而,我最初設置我的數據庫只有兩個表:用戶(包含所有類型通用的所有登錄信息)和配置文件(包含所有其他信息;儘管每列適用於特定類型的用戶)。如何連接此父表與其不同的子表?
我在想也許我應該有用戶,併爲每個類型,即學生,導師和管理員3個單獨的表。但是,如何將這三個表與Users錶鏈接?我確信會有橋牌桌,但我不太確定該怎麼做。
我正在研究具有不同類型用戶的應用程序,即學生,導師和管理員。然而,我最初設置我的數據庫只有兩個表:用戶(包含所有類型通用的所有登錄信息)和配置文件(包含所有其他信息;儘管每列適用於特定類型的用戶)。如何連接此父表與其不同的子表?
我在想也許我應該有用戶,併爲每個類型,即學生,導師和管理員3個單獨的表。但是,如何將這三個表與Users錶鏈接?我確信會有橋牌桌,但我不太確定該怎麼做。
這應該是一個堅實的起點。定義這聽起來像你一樣的表,然後使用ALTER TABLE命令應用這些關係。見下文。
CREATE TABLE Users
(
ID INT IDENTITY (1,1),
PRIMARY KEY (ID),
UserName VARCHAR(20),
Password VARCHAR(20)
)
CREATE TABLE Students
(
ID INT IDENTITY (1,1),
PRIMARY KEY (ID),
UserID INT --foreign key to Users.ID column
--Other columns
)
CREATE TABLE Tutors
(
ID INT IDENTITY (1,1),
PRIMARY KEY (ID),
UserID INT --foreign key to Users.ID column
--Other columns
)
CREATE TABLE Administrators
(
ID INT IDENTITY (1,1),
PRIMARY KEY (ID),
UserID INT --foreign key to Users.ID column
--Other columns
)
--Apply foreign key relationships
ALTER TABLE Students
ADD FOREIGN KEY (UserID)
REFERENCES Users(ID)
ALTER TABLE Tutors
ADD FOREIGN KEY (UserID)
REFERENCES Users(ID)
ALTER TABLE Administrators
ADD FOREIGN KEY (UserID)
REFERENCES Users(ID)
您可以將Users表的主鍵作爲外鍵添加到3個獨立表中的每個表。
希望這會有所幫助。
USER_TYPE
表,含有userType
和userTypeID
列。USER
表,含有userID
柱加登錄信息,加一個userTypeID
柱,連接到USER_TYPE
表。USER_STUDENT
表,包含學生相關列,加 a userID
列,鏈接到USER
表。USER_TUTOR
表中,包含導師相關列,加 a userID
列,鏈接到USER
表。USER_ADMINISTRATOR
表,包含管理員相關列,加 a userID
列,鏈接到USER
表。可以加入如下所示1,2和{3或4或5}的表,和在類似的其它方法:
SELECT U.*, S.*
FROM USER as U
INNER JOIN USER_TYPE AS UT ON UT.userTypeID = U.userTypeID
INNER JOIN USER_STUDENT AS US ON US.userID = U.userID
WHERE UT.userType = 'STUDENT'
的另一種方法是引入「角色」表,其限定系統中的角色/配置文件的類型(學生,管理員,導師...),然後添加一個映射表「user_role」,它將用戶映射到角色(即John既是學生又是教師,意味着在「 user_role「表,用戶的特定於角色的信息可以在下表中顯示爲」詳細「表格的表格中
USER
----
user_id
username
password
ROLE
----
role_id
role_name
USER_ROLE
----------
user_role_id
user_id
role_id
from_date
to_date
STUDENT_DETAIL
--------------
user_role_id
student_number
TUTOR_DETAIL
------------
user_role_id
sin
非常感謝。 – Mikey