Ferreteria/modules/files/rf node

From Woozle Writes Code
< Ferreteria‎ | modules‎ | files
Revision as of 11:42, 25 July 2017 by htyp>Woozle
Jump to navigation Jump to search

About

  • Meaning: can represent any filesystem entity
  • Purpose: for code-managed repositories
  • Notes:
    • directory size optimization - For now, we'll just set use a constant and set it to a best-guess limit, probably 1000.
    • maximum URL length is somewhere around 1024 characters (varies by browser and server; presumably there is an official limit that is ≤ this).
    • This is related to FileFerret/SQL/entry, but not the same; that system tracks user-managed files.
    • Wrinkle I'm still working out: this actually needs to track two different representations of the file -- one for how to retrieve it from the native filesystem, and the other by which it will be represented to the user. There are issues to consider.

History

  • 2017-07-22 created for reworking file-management
  • 2017-07-24 moved from VbzCart to Ferreteria (RepoFerret module); renamed from fm_node to rf_node

SQL

<mysql> CREATE TABLE `rf_node` (

 ID        INT          NOT NULL AUTO_INCREMENT,
 ID_Parent INT          DEFAULT NULL,
 FSpecPart VARCHAR(255) NOT NULL COMMENT "relative filespec - the part of the path from parent to this file/folder",
 FSpecFull TEXT         NOT NULL COMMENT "full filespec (calculated)",
 WFullPath TEXT         NOT NULL COMMENT "full web URL (calculated)",
 WhenAdded  DATETIME    NOT NULL COMMENT "when the file was first added to the repository",
 WhenCreated DATETIME   NOT NULL COMMENT "file's creation timestamp",
 WhenEdited  DATETIME   DEFAULT NULL COMMENT "file's last-modified timestamp",
 WhenDeleted DATETIME   DEFAULT NULL COMMENT "when the file was removed from the repository (NULL = still here)",
 Descr     VARCHAR(255) DEFAULT NULL COMMENT "brief name or description",
 PRIMARY KEY(`ID`)

) ENGINE = InnoDB;</mysql>