3d-interface/sql/backup.pgsql

98 lines
2.2 KiB
Plaintext
Raw Normal View History

-- Clear database from previous tables (just in case...)
2015-05-18 15:33:14 +02:00
DROP TABLE IF EXISTS users CASCADE;
DROP TABLE IF EXISTS arrowclicked CASCADE;
2015-05-19 11:03:53 +02:00
DROP TABLE IF EXISTS coinclicked CASCADE;
2015-05-19 11:50:12 +02:00
DROP TABLE IF EXISTS keyboardevent CASCADE;
2015-05-20 15:20:59 +02:00
DROP TABLE IF EXISTS resetclicked CASCADE;
DROP TABLE IF EXISTS previousnextclicked CASCADE;
2015-05-21 15:35:40 +02:00
DROP TABLE IF EXISTS hovered CASCADE;
DROP TABLE IF EXISTS scene CASCADE;
DROP TABLE IF EXISTS experiment CASCADE;
2015-05-18 09:52:04 +02:00
2015-05-19 11:50:12 +02:00
DROP TYPE IF EXISTS VECTOR3 CASCADE;
DROP TYPE IF EXISTS CAMERA CASCADE;
DROP TYPE IF EXISTS PREVIOUSNEXT CASCADE;
-- Elementary types
CREATE TYPE PREVIOUSNEXT AS ENUM(
'p', 'n'
);
2015-05-19 11:50:12 +02:00
CREATE TYPE VECTOR3 AS(
x REAL,
y REAL,
z REAL
2015-05-19 11:50:12 +02:00
);
CREATE TYPE CAMERA AS(
position VECTOR3,
target VECTOR3
);
-- Base tables
2015-05-19 11:50:12 +02:00
CREATE TABLE users(
2015-05-18 09:52:04 +02:00
id SERIAL PRIMARY KEY,
2015-05-19 11:50:12 +02:00
name CHAR(50)
2015-05-18 09:52:04 +02:00
);
2015-05-18 15:33:14 +02:00
CREATE TABLE scene(
id SERIAL PRIMARY KEY,
name CHAR(50)
);
CREATE TABLE experiment(
2015-05-18 15:33:14 +02:00
id SERIAL PRIMARY KEY,
user_id SERIAL REFERENCES users (id),
scene_id SERIAL REFERENCES scene (id)
);
-- Init scene table
INSERT INTO scene(name) VALUES ('peachcastle');
INSERT INTO scene(name) VALUES ('bobomb');
INSERT INTO scene(name) VALUES ('coolcoolmountain');
INSERT INTO scene(name) VALUES ('whomp');
-- Events
CREATE TABLE arrowclicked(
id SERIAL PRIMARY KEY,
exp_id SERIAL REFERENCES experiment (id),
2015-05-18 15:33:14 +02:00
time TIMESTAMP DEFAULT NOW(),
arrow_id INTEGER
);
2015-05-19 11:03:53 +02:00
CREATE TABLE coinclicked(
id SERIAL PRIMARY KEY,
exp_id SERIAL REFERENCES experiment (id),
2015-05-19 11:03:53 +02:00
time TIMESTAMP DEFAULT NOW(),
coin_id INTEGER
);
2015-05-19 11:50:12 +02:00
CREATE TABLE keyboardevent(
id SERIAL PRIMARY KEY,
exp_id SERIAL REFERENCES experiment (id),
2015-05-19 11:50:12 +02:00
time TIMESTAMP DEFAULT NOW(),
camera CAMERA
);
2015-05-20 15:20:59 +02:00
CREATE TABLE resetclicked(
id SERIAL PRIMARY KEY,
exp_id SERIAL REFERENCES experiment (id),
2015-05-20 15:20:59 +02:00
time TIMESTAMP DEFAULT NOW()
);
CREATE TABLE previousnextclicked(
id SERIAL PRIMARY KEY,
exp_id SERIAL REFERENCES experiment (id),
previousnext PREVIOUSNEXT NOT NULL,
time TIMESTAMP DEFAULT NOW(),
camera CAMERA
);
2015-05-21 15:35:40 +02:00
CREATE TABLE hovered(
id SERIAL PRIMARY KEY,
exp_id SERIAL REFERENCES experiment (id),
2015-05-21 15:35:40 +02:00
start BOOLEAN NOT NULL,
time TIMESTAMP DEFAULT NOW(),
arrow_id INTEGER
2015-05-21 15:35:40 +02:00
);