Entity Domain
Across the system, there are a number of points where there is a loose hierarch or parent-child relationship between entire within the schema. Examples include the fact that a PartnerChannel has a parent Partner or a Product has a parent Supplier.
There are many cases where we require to provide customisation of user interfaces and product functionality or control certain metadata in the scope of these relationships.
The entity tables provide various data points that can be attached by virtue of a foreignId to any level within these loose hierarchies and our systems are structured to compute the disambiguate sum of all such data based on the context of the viewer.
The entity tables can provide data in the context against any of: “COMPANY”, “PARTNER”, “PARTNER_CHANNEL”, “PRODUCT“, “SUPPLIER”, “SOURCE”, “SOURCE_INSTANCE”, “BRAND” and “ORIGIN”.
It is NOT THE CASE that all of the above can be construed in a single hierarchy. However, typically any request to the API may resolve a viewer and request data that is linked to several entities.
COMPANY is a special case within the entity hierarchy. The word “company” represents “us” ie Holibob and as such is the highest level in the hierarchy. We can therefore expect that in the context of a given viewer if there is no most specific value for the same reference then the company values will be returned. Is some ways therefore these records represent default values.
Database Tables
The entity domain is headless: There is no Entity table in the schema. All entity tables include the following columns:
entityType - A reference to the table name of the entity that the record pertains to.
entityId - a reference to the Id of the record in the referenced table.
The following tables are defined in the entity domain:
Table Name | Purpose |
|---|---|
EntityValue | Details of any value that is subject to translation. The record uses The The |
EntityConfiguration | Details any number of values for a given entity. The table includes a
|
EntityProductPromotionScore | Details for any entity and for a given |
EntityQuestion | Details any number of questions or options against an entity. This is used by the availabilityResolver or sourceIntergrationServices to append at runtime a disambiguated list of |
EntityCommission | Details a rate of commission that is applied to an entity limited to:
Commissions are date bound having a At runtime the |
EntityComment | Details of any comment that has been recorded against an entity. |
EntityAttachment | |
EntityLink | |
EntityCancellationPenalty | |
Association Tables | |
EntitySystemTagAssociation | |
EntitySystemConfigurationAssociation | |
EntityActorAssociation | |