Ferreteria/v0.42/sql/node: Difference between revisions

From Woozle Writes Code
Jump to navigation Jump to search
(Created page with "==About== * '''table purpose''': root for all data * '''record purpose''': a thing that has values * '''Module''': {{l/version|odata}} ==History== * '''2017-03-12''' started *...")
 
(concept explanation from 0.41 (no changes))
Line 3: Line 3:
* '''record purpose''': a thing that has values
* '''record purpose''': a thing that has values
* '''Module''': {{l/version|odata}}
* '''Module''': {{l/version|odata}}
==Concept==
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
==History==
==History==
* '''2017-03-12''' started
* '''2017-03-12''' started

Revision as of 01:36, 24 January 2020

About

  • table purpose: root for all data
  • record purpose: a thing that has values
  • Module: Template:L/version

Concept

Every node

  • is a record in the node table
  • can have zero or more leafs
    • 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

History

  • 2017-03-12 started
  • 2017-04-09 decided there really should be a WhenMade timestamp; can always remove later
  • 2017-08-05 renamed Class to Type for consistency with tf_leaf: records use "types", code maps these to "classes"
  • 2020-01-16 redesigning for v0.4 (copied from Ferreteria/sql/tf node)
  • 2020-01-23 copying from v0.41 to v0.42 essentially unaltered

Fields

  • Type: name of node type; code should know how to map these to node-handler classes

SQL

CREATE TABLE `node` (
  `ID`       INT(4)       NOT NULL AUTO_INCREMENT,
  `Type`     VARCHAR(255) NOT NULL COMMENT "name of node type",
  `WhenMade` DATETIME     NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY(`ID`)
) ENGINE=InnoDB;