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

From Woozle Writes Code
Jump to navigation Jump to search
No edit summary
No edit summary
Line 18: Line 18:
* '''2020-05-26''' decided to remove NOT NULL from Type user can create new Nodes without any input.
* '''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.
** Strongly inclined to make Type a pseudofield (Leaf), in any case.
* '''2021-01-19''' "integer width is deprecated"; also decided it should be 8 bytes
==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`      BIGINT           NOT NULL AUTO_INCREMENT,
   `Type`    VARCHAR(255) DEFAULT 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 18:42, 19 January 2021

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.
  • 2021-01-19 "integer width is deprecated"; also decided it should be 8 bytes

Fields

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

SQL

CREATE TABLE `node` (
  `ID`       BIGINT           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;