InstaGov/schema/question

from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
< InstaGov‎ | schema
Revision as of 16:29, 14 July 2013 by Woozle (talk | contribs) (stripped down to almost nothing so we can use PostFerret)
Jump to navigation Jump to search

About

  • Purpose: implements questions
  • Notes:
    • I originally had a "WhenExpires" field as a way of making a decision at a specific time, but I decided that this belongs in a separate table (something like "decision point"). Timetable functionality feels "tacked-on", and putting it in a separate table allows keeping that feature from becoming entangled with basic voting. We might want to be able to implement, say, more than one decision-point per question.
    • Not sure if we'll actually need Pos/Neg_Text; it may be just a frill.
    • 2011-05-02 Makes no sense to have Pos/Neg Text; that's an Answer thing. (See InstaGov/SMW/questions for obsolete notes.)
    • 2012-12-28 Making the structure dependent on wiki pages increases platform-dependency and CPU overhead. Keep the table, make wiki page optional (it should default, at page creation time, to a calculated name which can be updated if the page is moved). We will probably need a log of edits to Answers. In fact, let's do a general log.

History

  • 2012-12-28 Removing *_Text; adding Summary, WhoCreated
  • 2013-01-03 changed WhoCreated and WhoEdited from string to integer
  • 2013-01-07 Added UNIQUE KEY for Summary
  • 2013-07-14 Revising to use PostFerret
    • Summary field is now in post
    • Removing fields: Page (post), WhenCreated, WhoCreated, WhenEdited, WhoEdited, QtyEdits (atom)
    • Alternatively, we could have just used the post table and added a "class" field, since this record now adds no other information, but we may later want to add some... and so far none of the other post-derivatives are capable of being this stripped-down, so the "class" field would be redundant for them.

SQL

<mysql>CREATE TABLE `question` (

  `ID_Post`     INT              NOT NULL COMMENT "post.ID for content",
  PRIMARY KEY(`ID_Post`)
)
ENGINE = MYISAM;</mysql>

Obsolete

<mysql>CREATE TABLE `question` (

  `ID` INT  NOT NULL AUTO_INCREMENT,
  `Summary`     VARCHAR(255)     NOT NULL COMMENT "short description of question",
  `Page`        VARCHAR(127) DEFAULT NULL COMMENT "optional wiki page with more information",
  `WhenCreated` DATETIME         NOT NULL COMMENT "when this question was entered",
  `WhoCreated`  INT              NOT NULL COMMENT "ID of user who added the question",
  `WhenEdited`  DATETIME     DEFAULT NULL COMMENT "when this question was last edited",
  `WhoEdited`   INT          DEFAULT NULL COMMENT "ID of user who last edited the question",
  `QtyEdits`    INT          DEFAULT NULL COMMENT "number of times this question has been edited",
  PRIMARY KEY(`ID`),
  UNIQUE KEY `content` (`Summary`)
)
ENGINE = MYISAM;</mysql>