VbzCart/docs/tables/cat topic: Difference between revisions

From Woozle Writes Code
< VbzCart‎ | docs‎ | tables
Jump to navigation Jump to search
imported>Woozle
(New page: ==About== * '''Status''': Under development. May end up not being used. ==SQL== <section begin=sql /><mysql>DROP TABLE IF EXISTS `brs_topics`; CREATE TABLE `brs_topics` ( `ID` INT...)
 
m (Woozle moved page VbzCart/VbzCart/tables/cat topic to VbzCart/docs/tables/cat topic without leaving a redirect: part 3/5)
 
(7 intermediate revisions by one other user not shown)
Line 1: Line 1:
==About==
==About==
* '''Status''': Under development. May end up not being used.
===Usage===
* '''Used by''': {{vbzcart|table|cat_title_x_topic}}, {{vbzcart/query|qryTitleTopic_Titles}}
 
Generally, Topics are to be used in the following places:
* Topic pages (show what titles are assigned)
* Topic index (show what item types are [(1) available (2) in stock] for each topic)
* Title pages
** show what topics the title is in
** summarize how many other titles are available for each topic
** (future) show thumbnails for titles in topics with the A flag
 
In most display context, Topics should be sorted properly. (I thought I had already documented this but can't find it anywhere, so this is a first-pass reconstruction.) Sorting should generally be:<mysql>ORDER BY Sort, Name</mysql>
===History===
* '''2010-10-13''' Coding (store and admin) in progress; noted 3 possible fields to add
* '''2011-02-04''' working
* '''2011-02-05''' New fields: '''NameMeta''' and '''Usage'''
* '''2011-02-24''' New fields: '''cntTiHere''' and '''cntTiSub''' to support lookup-free indication of where to find active titles
* '''2011-09-28''' renamed from '''brs_topics''' to '''cat_topic'''
===Future===
* Fields I'm considering adding:
** A) a flag to indicate that thumbnails of other items in the same category should be shown
** B) a prefix to be added to NameFull for all child nodes (and maybe a flag to override it)
** C) a way of creating "virtual" nodes to cross-link to related topics in other branches
==SQL==
==SQL==
<section begin=sql /><mysql>DROP TABLE IF EXISTS `brs_topics`;
<mysql>DROP TABLE IF EXISTS `cat_topic`;
CREATE TABLE `brs_topics` (
CREATE TABLE `cat_topic` (
   `ID`        INT         NOT NULL AUTO_INCREMENT,
   `ID`        INT             NOT NULL AUTO_INCREMENT,
   `ID_Parent` INT          DEFAULT NULL COMMENT "brs_topics.ID of parent topic",
   `ID_Parent` INT          DEFAULT NULL COMMENT "cat_topic.ID of parent topic",
   `Name`      varchar(128) NOT NULL     COMMENT "generic name (context-free, but as short as possible)",
   `Name`      VARCHAR(128)     NOT NULL COMMENT "generic name (context-free, but as short as possible)",
   `NameTree`  varchar(64)  DEFAULT NULL COMMENT "name within context of parent; defaults to Name",
   `NameTree`  VARCHAR(64)  DEFAULT NULL COMMENT "name within context of parent; defaults to Name",
   `NameFull`  varchar(255) DEFAULT NULL COMMENT "descriptive standalone name (context free, can be long)",
   `NameFull`  VARCHAR(255) DEFAULT NULL COMMENT "descriptive standalone name (context free, can be long)",
   `Sort`      varchar(15)  DEFAULT NULL COMMENT "optional sorting key",
  `NameMeta`  VARCHAR(144) DEFAULT NULL COMMENT "plain text for HTML META description tag",
   `Variants`  varchar(255) DEFAULT NULL COMMENT "synonyms and other keywords which should find this topic",
  `Usage`    VARCHAR(255) DEFAULT NULL COMMENT "usage instructions for this topic - show when editing topic",
   `Mispeled`  varchar(255) DEFAULT NULL COMMENT "same as Variants, but these are WRONG spellings; avoid displaying",
/*  `Details`  VARCHAR(255) DEFAULT NULL COMMENT "additional information of interest to regular users (may include HTML)", */
   `Sort`      VARCHAR(15)  DEFAULT NULL COMMENT "optional sorting key",
   `Variants`  VARCHAR(255) DEFAULT NULL COMMENT "synonyms and other keywords which should find this topic",
   `Mispeled`  VARCHAR(255) DEFAULT NULL COMMENT "same as Variants, but these are WRONG spellings; avoid displaying",
  `cntTiHere` INT          DEFAULT NULL COMMENT "calculated: number of active titles for this topic",
  `cntTiSub`  INT          DEFAULT NULL COMMENT "calculated: sum of active titles for all subtopics",
   PRIMARY KEY(`ID`)
   PRIMARY KEY(`ID`)
) ENGINE = MYISAM;</mysql>
) ENGINE = MYISAM;</mysql>
<section end=sql />

Latest revision as of 01:56, 25 February 2024

About

Usage

Generally, Topics are to be used in the following places:

  • Topic pages (show what titles are assigned)
  • Topic index (show what item types are [(1) available (2) in stock] for each topic)
  • Title pages
    • show what topics the title is in
    • summarize how many other titles are available for each topic
    • (future) show thumbnails for titles in topics with the A flag

In most display context, Topics should be sorted properly. (I thought I had already documented this but can't find it anywhere, so this is a first-pass reconstruction.) Sorting should generally be:<mysql>ORDER BY Sort, Name</mysql>

History

  • 2010-10-13 Coding (store and admin) in progress; noted 3 possible fields to add
  • 2011-02-04 working
  • 2011-02-05 New fields: NameMeta and Usage
  • 2011-02-24 New fields: cntTiHere and cntTiSub to support lookup-free indication of where to find active titles
  • 2011-09-28 renamed from brs_topics to cat_topic

Future

  • Fields I'm considering adding:
    • A) a flag to indicate that thumbnails of other items in the same category should be shown
    • B) a prefix to be added to NameFull for all child nodes (and maybe a flag to override it)
    • C) a way of creating "virtual" nodes to cross-link to related topics in other branches

SQL

<mysql>DROP TABLE IF EXISTS `cat_topic`; CREATE TABLE `cat_topic` (

 `ID`        INT              NOT NULL AUTO_INCREMENT,
 `ID_Parent` INT          DEFAULT NULL COMMENT "cat_topic.ID of parent topic",
 `Name`      VARCHAR(128)     NOT NULL COMMENT "generic name (context-free, but as short as possible)",
 `NameTree`  VARCHAR(64)  DEFAULT NULL COMMENT "name within context of parent; defaults to Name",
 `NameFull`  VARCHAR(255) DEFAULT NULL COMMENT "descriptive standalone name (context free, can be long)",
 `NameMeta`  VARCHAR(144) DEFAULT NULL COMMENT "plain text for HTML META description tag",
 `Usage`     VARCHAR(255) DEFAULT NULL COMMENT "usage instructions for this topic - show when editing topic",

/* `Details` VARCHAR(255) DEFAULT NULL COMMENT "additional information of interest to regular users (may include HTML)", */

 `Sort`      VARCHAR(15)  DEFAULT NULL COMMENT "optional sorting key",
 `Variants`  VARCHAR(255) DEFAULT NULL COMMENT "synonyms and other keywords which should find this topic",
 `Mispeled`  VARCHAR(255) DEFAULT NULL COMMENT "same as Variants, but these are WRONG spellings; avoid displaying",
 `cntTiHere` INT          DEFAULT NULL COMMENT "calculated: number of active titles for this topic",
 `cntTiSub`  INT          DEFAULT NULL COMMENT "calculated: sum of active titles for all subtopics",
 PRIMARY KEY(`ID`)

) ENGINE = MYISAM;</mysql>