Attribute SubType

A shared model called "Attribute" from Platform is used for storing EDFs. Values are stored in a "row-based" fashion, i.e. a model will have multiple rows in Attribute representing its EDFs, where each row contains an attribute name and attribute value.

This storage strategy is used because of dynamic nature of EDFs, allowing for the addition/removal of EDFs without database schema changes. This also means that the ATTRIBUTE table can grow very large. This strategy may not scale for high-cardinality models such as Buffer.

You can use Attribute SubType to improve scalibility. When creating a model, you may specify a separate subtype of the Attribute model to be used for persistence. This subtype by definition must have all the same fields as the primary Attribute model, but will be stored in its own table, giving you a natural partitioning of this model's data from other model types.

images/download/attachments/144835269/attribute_subtype-version-1-modificationdate-1645043659000-api-v2.png

In the example above, the ZBKS.AttributeSubType model is specified as the attribute model for model ZBKS.Book model. Hence, for EDFs across all EPTs, attributes for the ZBKS.Book will be stored in ZBKS.AttributeSubType model.