Difference between revisions of "User:Woozle/PostFerret/sql/post"

from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
Jump to navigation Jump to search
m (8 revisions imported: PostFerret from ICMS)
(decided that this should point to other Atoms rather than directly to Text)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
 
==About==
 
==About==
* '''Purpose''': an atom with a little bit of content and possibly an owner
+
* '''Purpose''': content type -- has a title and content; optionally, an owner and summary
 
* '''Fields''':
 
* '''Fields''':
 
** '''ID_Owner''': ID of user who owns this post (NULL means ownership is not relevant)
 
** '''ID_Owner''': ID of user who owns this post (NULL means ownership is not relevant)
** '''Summary''': subject, title, or one-line description
 
 
*** Some post types will not have owners, but it's a common enough thing that I thought it should go in at a low level.
 
*** Some post types will not have owners, but it's a common enough thing that I thought it should go in at a low level.
 +
** '''ID_Title''': ID of {{l/same|atom}} for title for page headers and narrower listings
 +
** '''ID_Summary''': ID of {{l/same|atom}} for one-line description for wide listings, intro paragraph for blog posts, etc.
 +
** '''ID_Body''': ID of {{l/same|atom}} for main content
 
* '''History''':
 
* '''History''':
 
** '''2013-03-12''' Created, but not yet in use.
 
** '''2013-03-12''' Created, but not yet in use.
Line 13: Line 15:
 
*** Added '''Body''' field to make this independent of the containing [[content management system|CMS]].
 
*** Added '''Body''' field to make this independent of the containing [[content management system|CMS]].
 
** '''2013-07-21''' ID_Owner needs to be DEFAULT NULL (not NOT NULL) if it's going to be optional. Duh.
 
** '''2013-07-21''' ID_Owner needs to be DEFAULT NULL (not NOT NULL) if it's going to be optional. Duh.
 +
** '''2015-06-29''' Decided that editable text content should be in a separate table, to make it easier to track revisions
 
==SQL==
 
==SQL==
 
<mysql>
 
<mysql>
CREATE TABLE `post` (
+
CREATE TABLE `pf_post` (
 
   `ID_Atom`    INT              NOT NULL COMMENT "ID of atom this post is using",
 
   `ID_Atom`    INT              NOT NULL COMMENT "ID of atom this post is using",
   `ID_Owner`    INT          DEFAULT NULL COMMENT "optional: ID of user who owns this post",
+
   `ID_Owner`    INT          DEFAULT NULL COMMENT "ID of user who owns this post (optional)",
   `Summary`     VARCHAR(255)    NOT NULL COMMENT "short description, for listings",
+
   `ID_Title`   INT              NOT NULL COMMENT "ID of atom for title",
   `Body`       TEXT        DEFAULT NULL COMMENT "body of post (optional)",
+
   `ID_Summary` INT          DEFAULT NULL COMMENT "ID of atom for summary (optional)",
 +
  `ID_Body`    INT              NOT NULL COMMENT "ID of atom for body of post",
 
   PRIMARY KEY(`ID_Atom`)
 
   PRIMARY KEY(`ID_Atom`)
 
  )
 
  )

Latest revision as of 01:59, 30 June 2015

About

  • Purpose: content type -- has a title and content; optionally, an owner and summary
  • Fields:
    • ID_Owner: ID of user who owns this post (NULL means ownership is not relevant)
      • Some post types will not have owners, but it's a common enough thing that I thought it should go in at a low level.
    • ID_Title: ID of atom for title for page headers and narrower listings
    • ID_Summary: ID of atom for one-line description for wide listings, intro paragraph for blog posts, etc.
    • ID_Body: ID of atom for main content
  • History:
    • 2013-03-12 Created, but not yet in use.
    • 2013-03-15 Most fields moved from post to atom; added ID_Owner.
    • 2013-06-28
      • Decided to remove URI until there's a clear purpose and need for it.
      • Removed owner/summary uniqueness requirement; can't see need for this either (e.g. multiple posts might be called "status report", for example).
      • Added Body field to make this independent of the containing CMS.
    • 2013-07-21 ID_Owner needs to be DEFAULT NULL (not NOT NULL) if it's going to be optional. Duh.
    • 2015-06-29 Decided that editable text content should be in a separate table, to make it easier to track revisions

SQL

<mysql> CREATE TABLE `pf_post` (

  `ID_Atom`     INT              NOT NULL COMMENT "ID of atom this post is using",
  `ID_Owner`    INT          DEFAULT NULL COMMENT "ID of user who owns this post (optional)",
  `ID_Title`    INT              NOT NULL COMMENT "ID of atom for title",
  `ID_Summary`  INT          DEFAULT NULL COMMENT "ID of atom for summary (optional)",
  `ID_Body`     INT              NOT NULL COMMENT "ID of atom for body of post",
  PRIMARY KEY(`ID_Atom`)
)
ENGINE = MYISAM;

</mysql>

Obsolete

  • URI: I haven't yet decided if this really belongs here or how to formally define it, but it could be used for either:
    • a page on the site which is set aside for more information about the given post
    • the post's official URI on the site

<mysql> `URI` VARCHAR(255) DEFAULT NULL COMMENT "optional site-relative URI for more information",</mysql>