2013-03-12 70 views
1

我想在mySQL數據庫上實現這種關係。 Relationship where a entity called Person is superclass from Student and Teacher classes on a a total and disjunt espetialization如何從增強型實體關係模型中實現抽象類?

我使用這個模式:

CREATE TABLE Person 
(
id INTEGER NOT NULL AUTO_INCREMENT, 
name VARCHAR(40), 
PRIMARY KEY(id) 
); 

CREATE TABLE Student 
(
id INTEGER NOT NULL, 
FOREIGN KEY(id) 
    REFERENCES Person(id) 
     ON DELETE CASCADE 
     ON UPDATE CASCADE 
); 

CREATE TABLE Teacher 
(
id INTEGER NOT NULL, 
room INTEGER NOT NULL,  
FOREIGN KEY(id) 
    REFERENCES Person(id) 
     ON DELETE CASCADE 
     ON UPDATE CASCADE 
); 

這樣我可以保證不會存在教師或學生不是一個人,但我不能保證「總」 especialization。可能存在一個不是學生或教師的人。此外,我不能保證排他性。可能存在一個是學生和老師的人。

我如何解決這個在關係數據庫中作爲MySQL?

回答

0

「可能存在不是學生或教師的人」:如果您正在存儲歷史記錄,這是非常有效的;一旦學生畢業,或者教師退休或加入另一個組織,記錄仍然需要在數據庫中至少存在一段時間。

「可能存在一個不是學生或老師的人「:這也是合法的情況。在大學裏,許多(大多數?)教學助理也是研究生。