|
# Copyright (c) 2013 Georgios Gousios |
|
# MIT-licensed |
|
# [megansquire] Edited to handle new column names (Date instead of CreationDate) |
|
# [estasney] Add suggestions from RoelVdP. Improve performace by disabling checks |
|
|
|
SET @@SESSION.SQL_MODE=''; |
|
create database stackoverflow DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_bin; |
|
|
|
use stackoverflow; |
|
|
|
SET unique_checks=0; |
|
SET foreign_key_checks=0; |
|
|
|
create table badges ( |
|
Id INT NOT NULL PRIMARY KEY, |
|
UserId INT, |
|
Name VARCHAR(50), |
|
Date DATETIME |
|
); |
|
|
|
CREATE TABLE comments ( |
|
Id INT NOT NULL PRIMARY KEY, |
|
PostId INT NOT NULL, |
|
Score INT NOT NULL DEFAULT 0, |
|
Text TEXT, |
|
CreationDate DATETIME, |
|
UserId INT NOT NULL |
|
); |
|
|
|
CREATE TABLE post_history ( |
|
Id INT NOT NULL PRIMARY KEY, |
|
PostHistoryTypeId SMALLINT NOT NULL, |
|
PostId INT NOT NULL, |
|
RevisionGUID VARCHAR(36), |
|
CreationDate DATETIME, |
|
UserId INT NOT NULL, |
|
Text TEXT |
|
); |
|
CREATE TABLE post_links ( |
|
Id INT NOT NULL PRIMARY KEY, |
|
CreationDate DATETIME DEFAULT NULL, |
|
PostId INT NOT NULL, |
|
RelatedPostId INT NOT NULL, |
|
LinkTypeId INT DEFAULT NULL |
|
); |
|
|
|
|
|
CREATE TABLE posts ( |
|
Id INT NOT NULL PRIMARY KEY, |
|
PostTypeId SMALLINT, |
|
AcceptedAnswerId INT, |
|
ParentId INT, |
|
Score INT NULL, |
|
ViewCount INT NULL, |
|
Body text NULL, |
|
OwnerUserId INT NOT NULL, |
|
OwnerDisplayName varchar(256), |
|
LastEditorUserId INT, |
|
LastEditDate DATETIME, |
|
LastActivityDate DATETIME, |
|
Title varchar(256) NOT NULL, |
|
Tags VARCHAR(256), |
|
AnswerCount INT NOT NULL DEFAULT 0, |
|
CommentCount INT NOT NULL DEFAULT 0, |
|
FavoriteCount INT NOT NULL DEFAULT 0, |
|
CreationDate DATETIME, |
|
DeletionDate DATETIME NULL |
|
); |
|
|
|
CREATE TABLE tags ( |
|
Id INT NOT NULL PRIMARY KEY, |
|
TagName VARCHAR(50) CHARACTER SET latin1 DEFAULT NULL, |
|
Count INT DEFAULT NULL, |
|
ExcerptPostId INT DEFAULT NULL, |
|
WikiPostId INT DEFAULT NULL |
|
); |
|
|
|
|
|
CREATE TABLE users ( |
|
Id INT NOT NULL PRIMARY KEY, |
|
Reputation INT NOT NULL, |
|
CreationDate DATETIME, |
|
DisplayName VARCHAR(50) NULL, |
|
LastAccessDate DATETIME, |
|
Views INT DEFAULT 0, |
|
WebsiteUrl VARCHAR(256) NULL, |
|
Location VARCHAR(256) NULL, |
|
AboutMe TEXT NULL, |
|
Age INT, |
|
UpVotes INT, |
|
DownVotes INT, |
|
EmailHash VARCHAR(32) |
|
); |
|
|
|
CREATE TABLE votes ( |
|
Id INT NOT NULL PRIMARY KEY, |
|
PostId INT NOT NULL, |
|
VoteTypeId SMALLINT, |
|
CreationDate DATETIME |
|
); |
|
|
|
load xml infile 'Badges.xml' |
|
into table badges |
|
rows identified by '<row>'; |
|
|
|
load xml infile 'Comments.xml' |
|
into table comments |
|
rows identified by '<row>'; |
|
|
|
load xml infile 'PostHistory.xml' |
|
into table post_history |
|
rows identified by '<row>'; |
|
|
|
LOAD XML LOCAL INFILE 'PostLinks.xml' |
|
INTO TABLE post_links |
|
ROWS IDENTIFIED BY '<row>'; |
|
|
|
load xml infile 'Posts.xml' |
|
into table posts |
|
rows identified by '<row>'; |
|
|
|
LOAD XML LOCAL INFILE 'Tags.xml' |
|
INTO TABLE tags |
|
ROWS IDENTIFIED BY '<row>'; |
|
|
|
load xml infile 'Users.xml' |
|
into table users |
|
rows identified by '<row>'; |
|
|
|
load xml infile 'Votes.xml' |
|
into table votes |
|
rows identified by '<row>'; |
|
|
|
create index badges_idx_1 on badges(UserId); |
|
|
|
create index comments_idx_1 on comments(PostId); |
|
create index comments_idx_2 on comments(UserId); |
|
|
|
create index post_history_idx_1 on post_history(PostId); |
|
create index post_history_idx_2 on post_history(UserId); |
|
|
|
create index posts_idx_1 on posts(AcceptedAnswerId); |
|
create index posts_idx_2 on posts(ParentId); |
|
create index posts_idx_3 on posts(OwnerUserId); |
|
create index posts_idx_4 on posts(LastEditorUserId); |
|
|
|
create index votes_idx_1 on votes(PostId); |
|
|
|
SET unique_checks=1; |
|
SET foreign_key_checks=1; |