CoreData domain model
Contents
Document hierarchy
CoreData’s document model is built of documents organised in a tree.
Base abstract document type is Document
. All specific document types such as Space
, Folder
, Project
, File
etc. derive from Document
and are system types.
The conceptual schema below displays allowed children for each document type in the hierarchy:

Source: link.
NOTE: A user record does not belong the Document
type hierarchy, it is a separate type deriving from the Django’s django.contrib.auth.User
.
The document hierarchy is easier to learn when broken down into sections. Documents in a section are grouped together and serve for solving specific user task in CoreData. See CoreData document hierarchy per section below:
Document creation
The following items are used in document creation process:
System type (the types mentioned in the Document hierarchy above);
Field values provided by user.
The high-level document creation algorithm is following:

Source: link.