在關係超類型/子類型結構中,例如,我有超類型表entity
與entity_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中工作,對引擎沒有偏好。