The
isbasedonsoilderivedobjecttable is designed to represent derivation relationships between soil-derived objects, allowing a soil-derived object to be based on another soil-derived object. This table implements a self-referencing (recursive) relationship on thesoilderivedobjectentity, enabling the explicit modeling of derivation chains, dependencies, or transformations within the set of soil-derived objects. Through this mechanism, it is possible to describe cases where a derived object results from the refinement, aggregation, reinterpretation, or further processing of an existing derived object, rather than directly from a primary soil entity.
The use of a dedicated relationship table ensures that derivation links are:
soilderivedobject tableBy allowing soil-derived objects to reference other soil-derived objects as their source, this table supports the representation of multi-level derivation workflows, which are common in soil data production processes (e.g. successive interpretations, modelling steps, or product generalizations).
This approach improves both:
isbasedonsoilderivedobject| Name | Type | Constraints | Description |
|---|---|---|---|
id |
INTEGER |
PRIMARY KEY | Primary Key of the Table. |
guid_base |
TEXT |
NOT NULL | Foreign key to the SoilDerivedObject table, guid field. - Base SoilDerivedObject. |
guid_related |
TEXT |
NOT NULL | Foreign key to the SoilDerivedObject table, guid field. - Derived SoilDerivedObject. |
isbasedonsoilderivedobject.guid_related → soilderivedobject.guid (ON UPDATE CASCADE, ON DELETE CASCADE)
soilderivedobject cascades to isbasedonsoilderivedobject.isbasedonsoilderivedobject.guid_base → soilderivedobject.guid (ON UPDATE CASCADE, ON DELETE CASCADE)
soilderivedobject cascades to isbasedonsoilderivedobject.