A database has many tables, with each table having many columns. When a new Biskit is created, a new row is added to the Biskit's table, containing its properties. When a new property is added to a Biskit in Exprodo SDM, one would normally also add a new column to the appropriate database table. However, modifying tables like this is not something that all users would be comfortable doing.

 

Exprodo SDM helps with this by creating table columns automatically, but it will not remove unused columns, and it will not change the Biskit Type contained in a column. This provides some protection against accidental destruction of data while changing the Biskit definitions, but also means that getting the configuration right does have some difficulties. This is particularly true if there needs to be a change of the type of data stored by a property, which has to be handled by creating a new column for it.

 

However, there is an alternative that does not involve creating a new table column when adding a new property. Exprodo SDM supports what are called Indirect properties which are stored in a separate table in such a way that new properties do not require changing the table structure.

 

In all, there are three property storage mechanisms: Static, Dynamic and Indirect. This table compares them:

 

Comparison

Static Properties

Dynamic Properties

Indirect Properties

Description

Built-in to Exprodo SDM

Created using the Bakery

Created using the Bakery

Structure

Each property in a column in the Biskit's main table

Each property in a column in the Biskit's main table

One row added to the Biskit's indirect properties table for each indirect property.

Adding new property

Not possible without a new version of Exprodo SDM

Add in the Bakery

Ask the Bakery to update the database schema

Tell Exprodo SDM server to reload the data definitions when you have finished making all changes

Add in the Bakery

Advantages

Efficient storage and retrieval

The fastest access mechanism

Efficient storage and retrieval

Not quite as fast as static properties

Does not require table structure to be changed to add a new indirect property

Harder to make mistakes and get confused

Disadvantages

Cannot be changed without new version of Exprodo SDM

Need to be aware of database columns and their Biskit Types

Much less efficient storage and retrieval than the other property types

 

Users of Exprodo SDM cannot create or delete Static Biskits or properties but can change some of the meta properties of both the Biskit and the properties, such as the labels, tool tips, whether required and default values.

 

Users should be using dynamic properties rather than indirect properties, unless they really do not wish to change the DB Schema, and are happy with the speed of the indirect properties.