Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: clarified MAY to MUST (METAED-905)

This section covers allowable scenarios for adding entities to the Ed-Fi data model.

Table of Contents

1.1. Add New Domain Entity

A domain entity usually represents a real-world noun or concept. Examples in the core Ed-Fi data model include the Student entity, the Student Assessment entity, the Education Organization entity, and so forth. New entities may be added to the Ed-Fi data model.

  • MUST contain at least one identity property.
  • MAY MUST NOT allow identity property updates for new domain entities that are not in the core Ed-Fi data model.
  • MAY contain multiple identity properties.
  • MAY include any properties as required/optional/single/collection. 

1.2. Add New Association Entity

Association entities usually make a logical connection between domain entities (e.g., between a staff member and an education organization to which they are assigned). In the Ed-Fi data model, Association entities almost always carry additional information about the association itself such as begin and end dates. Associations often carry information specific to the association such as a staff member's specific role at a particular school.

  • MUST have a unique name - consider using a semantic differentiator in the name if an Association joining the same two entities already exists.
  • SHOULD have a name that concatenates the entities being joined ending with "Association".
  • MAY contain additional attributes beyond the reference to the associated entities.
  • MAY include any properties as required/optional/single/collection. 

1.3. Add New Descriptor

Descriptors are a customizable list of values mapped for each implementation. 

  • MAY MUST NOT include a map type.
  • MAY MUST NOT contain "Descriptor" in the name, as this creates redundancy in the name and causes downstream problems.
  • MAY MUST NOT contain any additional properties.

1.4. Add New Shared Simple Type

Shared simple types are elements that can be reused throughout an extension.

  • MUST have a unique name.
  • MUST contain the minimum appropriate details to define a decimal, string, or integer.
  • MAY MUST be a shared decimal, shared string, or shared integer.
  • MAY MUST NOT include any properties other than the simple type definition.

1.5. Add New Common Type

Common types are reusable types that can be referenced by inclusion in an Extension.

  • MUST contain an identity property if used as a collection. MAY otherwise contain an identity property.
  • MUST include at least one property from the list below.
  • MAY include any properties as required/optional/single/collection.