2014-01-12 61 views
0

在關係超類型/子類型結構中,例如,我有超類型表entityentity_type列和許多子類型表,有什麼方法可以去關於查詢所有實體的完整記錄,這是以某種方式自動加入到每個子類型表?選擇超類型/子類型SQL模式中的所有完整記錄

所以,用:

TABLE entity 
    -- entity_id (INT pk) 
    -- entity_type_id (INT fk) 

TABLE entity_type 
    -- entity_type_id (INT pk) 
    -- name //Person, Building, Animal (TEXT) 

TABLE person 
    -- entity_id (INT fk) 
    -- person_name (TEXT) 
    -- person_age (INT) 

TABLE building 
    -- entity_id (INT fk) 
    -- age_built (INT) 

如果我想查詢所有實體,並在我的結果集得到所有個人特定的列(person_name等),如果記錄如果記錄是建築物,是一個人和age_built等?我想過要在類型表中存儲子類型表名,但明白你不能動態地引用那些。

我是一個無知的數據庫新手在這裏,或者這是以任何方式可能沒有明確定義聯接和每個子類型表查詢?

我在問這是因爲在我的數據庫中的其他地方我會有很多引用entity_id(可能是任何類型的實體),我不想運行初始查詢只是爲了首先檢查它的類型。

在MySQL中工作,對引擎沒有偏好。

回答