Ferreteria/v0.41/odata: Difference between revisions

From Woozle Writes Code
Jump to navigation Jump to search
(Created page with "This system is experimental, and replaces/updates the old content system (which was really part of 0.2 or 0.3). ==Concepts== Every '''node''' *...")
 
m (13 revisions imported: moving this project here)
 
(12 intermediate revisions by one other user not shown)
Line 1: Line 1:
'''versions''': {{l/ferreteria/|v0.41/odata|0.41}}, {{l/ferreteria/|v0.42/odata|0.42}}, {{l/ferreteria/|v0.5/node|0.5}}
==About==
This system is experimental, and replaces/updates the old [[Ferreteria/modules/content|content system]] (which was really part of 0.2 or 0.3).
This system is experimental, and replaces/updates the old [[Ferreteria/modules/content|content system]] (which was really part of 0.2 or 0.3).


==Concepts==
Each node represents the core of a pseudo-record, which can have an arbitrary set of fields (leafs). Each leaf (field within a p-record) must have a unique name.
Every '''node'''
* is a record in the node table
* can have zero or more '''leaf''s
** There's generally no point to having zero, but no reason to forbid it.
* can have a (node) '''type''' which points to a handler-class
** so that when we're looking at a group of unspecified nodes, we know how to handle each one


Every '''leaf''':
There are two registries maintained by code:
* has
* Pseudorecord types (node.Type)
** a data type
* Leaf types (leaf.Type)
** a name (unique within the node)
==Pages==
** a value
* '''concepts''':
* is like a single field in a single record
** {{l/sub|node}} - pseudo-record identity
** {{l/sub|leaf}} - field within a pseudo-record
* '''tables''':
** {{l/version|sql|node}}: node index
** {{l/version|sql|node_leaf}}: master node-leaf index
** '''leaf types''':
*** {{l/version|sql|node_leaf_int}}: leaf type for handling integers
*** {{l/version|sql|node_leaf_text}}: leaf type for handling large strings
*** {{l/version|sql|node_leaf_time}}: leaf type for handling timestamps
*** (There will eventually be more types.)
==Archive==
* [[/draft]]: an early draft of this version

Latest revision as of 16:44, 22 May 2022

versions: 0.41, 0.42, 0.5

About

This system is experimental, and replaces/updates the old content system (which was really part of 0.2 or 0.3).

Each node represents the core of a pseudo-record, which can have an arbitrary set of fields (leafs). Each leaf (field within a p-record) must have a unique name.

There are two registries maintained by code:

  • Pseudorecord types (node.Type)
  • Leaf types (leaf.Type)

Pages

Archive

  • /draft: an early draft of this version