Thank you for upload, @ReD_CoDE!
The result looks like this:
CREATE TABLE IfcObject (oid INTEGER,
GlobalId TEXT,
OwnerHistory INTEGER,
Name TEXT,
Description TEXT,
ObjectType TEXT);
…
CREATE TABLE IfcActorRole (oid INTEGER,
Role VARCHAR,
UserDefinedRole TEXT,
Description TEXT);
…
IfcObject is abstract and IfcActorRole is derived from IfcObject, which contains only the attributes, that are not contained in IfcObject.
This is Strategy no. 4:
Store every inheritance-step in its own table(782).
(+) recognition value
(+) rule checking on base-classes possible
(-) don’t work with (every) SELECT-Types
(-) too much tables (more confusing than strategy no. 3)