Difference between revisions of "InstaGov/schema/question"

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
(extracted obsolete notes)
(changing user fields to INT)
Line 8: Line 8:
 
===History===
 
===History===
 
* '''2012-12-28''' Removing *_Text; adding Summary, WhoCreated
 
* '''2012-12-28''' Removing *_Text; adding Summary, WhoCreated
 +
* '''2013-01-03''' changed WhoCreated and WhoEdited from string to integer
 
==SQL==
 
==SQL==
 
<mysql>CREATE TABLE `question` (
 
<mysql>CREATE TABLE `question` (
Line 14: Line 15:
 
   `Page`        VARCHAR(127) DEFAULT NULL COMMENT "optional wiki page with more information",
 
   `Page`        VARCHAR(127) DEFAULT NULL COMMENT "optional wiki page with more information",
 
   `WhenCreated` DATETIME        NOT NULL COMMENT "when this question was entered",
 
   `WhenCreated` DATETIME        NOT NULL COMMENT "when this question was entered",
   `WhoCreated`  VARCHAR(127)    NOT NULL COMMENT "username of user who added the question",
+
   `WhoCreated`  INT              NOT NULL COMMENT "ID of user who added the question",
 
   `WhenEdited`  DATETIME    DEFAULT NULL COMMENT "when this question was last edited",
 
   `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",
+
   `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",
 
   `QtyEdits`    INT          DEFAULT NULL COMMENT "number of times this question has been edited",
 
   PRIMARY KEY(`ID`)
 
   PRIMARY KEY(`ID`)
 
  )
 
  )
 
  ENGINE = MYISAM;</mysql>
 
  ENGINE = MYISAM;</mysql>

Revision as of 14:23, 3 January 2013

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

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`  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`)
)
ENGINE = MYISAM;</mysql>