doc/book/en/B0010-define-schema.en.txt
author Emile Anclin <emile.anclin@logilab.fr>
Tue, 05 May 2009 17:18:49 +0200
changeset 1693 49075f57cf2c
parent 1205 79d33f7db590
permissions -rw-r--r--
use logilab.common.sphinxutils

.. -*- coding: utf-8 -*-

Data model definition: the *schema*
===================================

The **schema** is the core piece of a `CubicWeb` application as it defines
the handled data model. It is based on entity types that are either already
defined in the `CubicWeb` standard library; or more specific types, that 
`CubicWeb` expects to find in one or more Python files under the directory 
`schema`.

At this point, it is important to make clear the difference between
*relation type* and *relation definition*: a *relation type* is only a relation
name with potentially other additionnal properties (see XXXX), whereas a 
*relation definition* is a complete triplet 
"<subject entity type> <relation type> <object entity type>". 
A relation type could have been implied if none is related to a 
relation definition of the schema.


.. include:: B0011-schema-stdlib.en.txt
.. include:: B0012-schema-definition.en.txt