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

From Woozle Writes Code
Jump to navigation Jump to search
(concept explanation from 0.41 (no changes))
No edit summary
Line 16: Line 16:
* '''2020-01-16''' redesigning for v0.4 (copied from [[Ferreteria/sql/tf node]])
* '''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
* '''2020-01-23''' copying from v0.41 to v0.42 essentially unaltered
* '''2020-05-26''' decided to remove NOT NULL from Type user can create new Nodes without any input.
** Strongly inclined to make Type a pseudofield (Leaf), in any case.
==Fields==
==Fields==
* '''Type''': name of node type; code should know how to map these to node-handler classes
* '''Type''': name of node type; code should know how to map these to node-handler classes
==SQL==
==SQL==
<source lang=mysql>CREATE TABLE `node` (
<source lang=mysql>CREATE TABLE `node` (
   `ID`      INT(4)       NOT NULL AUTO_INCREMENT,
   `ID`      INT(4)           NOT NULL AUTO_INCREMENT,
   `Type`    VARCHAR(255) NOT NULL COMMENT "name of node type",
   `Type`    VARCHAR(255) DEFAULT NULL COMMENT "name of node type",
   `WhenMade` DATETIME     NOT NULL DEFAULT CURRENT_TIMESTAMP,
   `WhenMade` DATETIME         NOT NULL DEFAULT CURRENT_TIMESTAMP,
   PRIMARY KEY(`ID`)
   PRIMARY KEY(`ID`)
) ENGINE=InnoDB;</source>
) ENGINE=InnoDB;</source>

Revision as of 00:03, 27 May 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
  • 2020-05-26 decided to remove NOT NULL from Type user can create new Nodes without any input.
    • Strongly inclined to make Type a pseudofield (Leaf), in any case.

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) DEFAULT NULL COMMENT "name of node type",
  `WhenMade` DATETIME         NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY(`ID`)
) ENGINE=InnoDB;