doc/book/en/B0010-define-schema.en.txt
author sylvain.thenault@logilab.fr
Fri, 17 Apr 2009 09:37:29 +0200
branchtls-sprint
changeset 1389 ae58c2e7e1f7
parent 1205 79d33f7db590
permissions -rw-r--r--
clear label handling

.. -*- 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