Data Modeling

Definition

Custom schema specification for data validation, storage, and UI presentation.

Example Use Cases

Modeling-Based Apps

Several genres of applications are fundamentally based on data storage:

Most all of these systems have default models of some kind, and they all allow the extension of those models for a customers specific requirements.

The extension of a model means the specification of additional values (called “fields,” “properties,” or “attributes”), with the following details:

Additionally, some of these might be custom:

UI-Modeling vs. Code-Modeling

There are two major patterns for model specification:

Clearly, code-first modeling cannot be considered “user extensible.”

UI modeling is user-extensible, but comes with its own problems and limitation, primarily around lack of versioning and environment synchronization.

See: The Benefits of Files.

Some systems offer user-extensible modeling with import/export or other kinds of synchronization:

The Problem of Custom Model Types

Most content management systems allow a developer to define custom property types. These can be comprised of:

Without root access custom property types basically consists of a client-side UI element that serializes itself, prior to submission.

Serialization could be into a known format (a specified JSON representation, for example), so just to a “blind” string that the system stores as such.

Server-side validation is likely not possible as the application would likely have to deserialize the submission and turn it into a typed object. If there was a specified JSON format into which the value was serialized, the application might be able to deserialize into a simple object and validate, but this would be subject to the limitations of non-root code.

Practices for User Extensibility: Data Modeling