· 8 years ago · Mar 17, 2018, 02:40 AM
1-- Reviews
2CREATE TABLE IF NOT EXISTS /*_*/reviews (
3 review_id INT unsigned NOT NULL auto_increment PRIMARY KEY,
4 review_page_id INT unsigned NOT NULL, -- Foreign key on page.page_id
5 review_user_id INT unsigned NOT NULL, -- Foreign key on user.user_id
6 review_text TEXT NOT NULL, -- Review text
7 review_time varbinary(14) NOT NULL, -- Time when the review was editted
8 review_state TINYINT unsigned NOT NULL, -- State (new, flagged, reviewed)
9 review_rating TINYINT unsigned NOT NULL -- Main rating
10) /*$wgDBTableOptions*/;
11
12CREATE UNIQUE INDEX /*i*/review_page_user ON /*_*/reviews (review_page_id, review_user_id);
13CREATE INDEX /*i*/review_time ON /*_*/reviews (review_time);
14CREATE INDEX /*i*/review_state ON /*_*/reviews (review_state);
15CREATE INDEX /*i*/review_rating ON /*_*/reviews (review_rating);
16
17-- Category specific review ratings
18CREATE TABLE IF NOT EXISTS /*_*/review_ratings (
19 rating_id INT unsigned NOT NULL auto_increment PRIMARY KEY,
20 rating_review_id INT unsigned NOT NULL,
21 rating_type TINYINT unsigned NOT NULL
22) /*$wgDBTableOptions*/;
23
24CREATE UNIQUE INDEX /*i*/rrating_review_type ON /*_*/review_ratings (rating_review_id, rating_type);