Something missing? Suggest a change or addition

Fixed Schema

Problem

The items in my database must all be described in the same way.

Context

The data to be captured in a project is known in advance and is not expected to change. For example, the project may involve collecting information about a specific list of items which have common attributes.

Solution

Agree the types of records and the attributes to be collected when designing your project. Ensure that the information you need to collect is well described so that contributors understand what is needed and how it will be used. This will help users to provide the data consistently, either directly through editing or through changes made via APIs.

Some collaborative projects are designed to support a specific purpose, for example collecting a list of places, services or companies; or to catalogue specific pieces of information, such as metadata describing a set of pictures, documents or videos.

In these cases, the types of records (e.g. place, company, or book) and their attributes (name, address, ISBN) are usually well defined. Collecting and managing the data will be designed specifically around this information, and the schema will be defined by the organisation or people designing the project, rather than the community of contributors.

It is important to ensure that the community understands what data is being collected, why it is useful and how it might be used. This will help them contribute effectively and will also help potential users of the data understand whether it will help meet their needs.

Use appropriate wording so that your schema can be understood by experts and non-experts.

Before the schema is finalised, consult widely with domain experts and users of the data. This will ensure the description of the items don’t need to change.

Needs may change over time, so you may also need to adopt an Evolving Schema approach in the future.

If it is important for your community to help shape and evolve the schema, a Shared Canvas approach might be better, although starting from a Fixed Schema can help build an initial community.

Open Library

The form to add a new book to the database according to its fixed schema



Related patterns

Shared Canvas

How do you empower a community to shape the types of data collected in a project so that it can adapt to a range of needs?

Evolving Schema

The schema originally designed for use in the project is no longer acceptable because the project or the community’s needs have changed.

Something missing? Suggest a change or addition