InstaGov/schema/rating

About

 * Purpose: Records the current value of one user's of a given  (which in turn is tied to a specific . These are the values which are aggregated to calculate the voting results for each question.
 * Rules:
 * Any may have zero or more ratings.
 * Each user sets the value of their rating for each answer, and can change that rating at any time.
 * Changes to ratings are logged in the.

History

 * 2013-01-09 Removed the "ID_Proxy" field; see for explanation; added unique key: one rating per answer per user; added WhenEdited, QtyEdits
 * 2013-08-05 Designed new version for integrating with (added ID_Atom, removed redundant fields) but decided not to implement yet, because value is not clear. Ratings already keep a separate log, and would we ever want to rate a rating? (...or do any of the other things that integration would enable)

SQL
CREATE TABLE `rating` (  `ID`          INT          NOT NULL AUTO_INCREMENT,   `ID_User`     INT          NOT NULL COMMENT "ID of user who gave this rating",   `ID_Answer`   INT          NOT NULL COMMENT "ID of answer for which this is a rating",   `ID_Log`      INT          NOT NULL COMMENT "ID of log entry for the most recent update of this rating",   `Value`       INT          NOT NULL COMMENT "rating value",   `WhenCreated` DATETIME     NOT NULL COMMENT "when this user first rated this answer",   `WhenEdited`  DATETIME DEFAULT NULL COMMENT "when this rating (of this answer) was last edited (by this user)",   `QtyEdits`    INT      DEFAULT NULL COMMENT "number of times this rating has been edited",   `Remark`      VARCHAR(255)          COMMENT "comments on this rating (can include link)",   PRIMARY KEY(`ID`),   UNIQUE KEY(`ID_User`,`ID_Answer`) ) ENGINE = MYISAM;

PostFerret version
CREATE TABLE `rating` (  `ID_Atom`     INT              NOT NULL COMMENT "main ID",    `ID_User`     INT              NOT NULL COMMENT "ID of user who gave this rating",   `ID_Answer`   INT              NOT NULL COMMENT "ID of answer for which this is a rating",   `ID_Log`      INT              NOT NULL COMMENT "ID of log entry for the most recent update of this rating",   `Value`       INT              NOT NULL COMMENT "rating value",   `Remark`      VARCHAR(255) DEFAULT NULL COMMENT "comments on this rating",   PRIMARY KEY(`ID`),   UNIQUE KEY(`ID_User`,`ID_Answer`) ) ENGINE = MYISAM;