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 02:59, 29 December 2012 by Woozle (talk | contribs) (one more edit-tracker)
Jump to navigation Jump to search

About

  • 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 This entire table may be redundant. Current thinking:
      • Each question is a wiki page, marked with a predetermined category.
      • This makes the list of questions queryable through the category table.
      • Use W3TPL to define display text, using <let name=text>text to display</let>.
      • Maybe we need a way for W3TPL to store <let> data, to make it more searchable -- but that can happen later.
      • (Or maybe, given the simplicity of Question data, we just use <noinclude> to delineate text which should not be shown in question lists. For now, sticking with W3TPL.)
      • Makes no sense to have Pos/Neg Text; that's an Answer thing.
    • 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

SQL

<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`  VARCHAR(127)     NOT NULL COMMENT "username of user who added the question",
  `WhenEdited`  DATETIME     DEFAULT NULL COMMENT "when this question was last edited",
  `WhoEdited`   VARCHAR(127) DEFAULT NULL COMMENT "username of user who last edited the question",
  `QtyEdits`    INT          DEFAULT NULL COMMENT "number of times this question has been edited",
  PRIMARY KEY(`ID`)
)
ENGINE = MYISAM;</mysql>