Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
USERS
CREATE TABLE roles (
role_id TINYINT(2) UNSIGNED NOT NULL,
description CHAR(15) NOT NULL,
visibility CHAR(50) NOT NULL,
PRIMARY KEY (role_id)
);
CREATE TABLE users (
user_id SMALLINT(3) UNSIGNED NOT NULL,
name CHAR(15) NOT NULL,
email CHAR(75) NOT NULL,
role TINYINT(1) UNSIGNED NOT NULL COMMENT 'see roles.role_id',
venue_id TINYINT(2) UNSIGNED NOT NULL COMMENT 'see datasets.venues.venue_id, [0] = multiple venues',
pwd_hash CHAR(60) NOT NULL,
PRIMARY KEY (user_id),
UNIQUE INDEX (name),
UNIQUE INDEX (pwd_hash),
INDEX (venue_id)
);
CREATE TABLE users_venues (
user_id SMALLINT(3) UNSIGNED NOT NULL COMMENT 'see users.user_id',
venue_id TINYINT(2) UNSIGNED NOT NULL COMMENT 'see datasets.venues.venue_id',
PRIMARY KEY (user_id, venue_id),
INDEX (user_id),
INDEX (venue_id)
);
CREATE TABLE actions (
action_id TINYINT(2) UNSIGNED NOT NULL,
description CHAR(15) NOT NULL,
PRIMARY KEY (action_id)
);
CREATE TABLE users_actions (
user_action_id INT AUTO_INCREMENT PRIMARY KEY,
app_id TINYINT(2) UNSIGNED NOT NULL,
user_id SMALLINT(3) UNSIGNED NOT NULL,
action_id TINYINT(2) UNSIGNED NOT NULL,
happened_at TIMESTAMP NOT NULL,
INDEX (app_id),
INDEX (user_id),
INDEX (action_id),
INDEX (happened_at)
);
CREATE TABLE users_sessions (
user_id smallint(3) NOT NULL,
session_id mediumint(6) NOT NULL,
name char(25) NOT NULL,
saved_at TIMESTAMP NOT NULL,
PRIMARY KEY (session_id)
);
CREATE TABLE sessions_inputs (
session_id mediumint(6) NOT NULL,
ui_id mediumint(6) NOT NULL,
value char(25) NOT NULL,
saved_at TIMESTAMP NOT NULL,
PRIMARY KEY (session_id,ui_id)
);
SHINYAPPS
CREATE TABLE apps (
app_id TINYINT(2) UNSIGNED NOT NULL,
name CHAR(25) NOT NULL,
description CHAR(255) NULL DEFAULT NULL,
PRIMARY KEY (app_id),
UNIQUE INDEX (name)
);
CREATE TABLE menu_items (
item_code CHAR(3) NOT NULL,
name CHAR(10) NOT NULL,
description CHAR(255) NULL DEFAULT NULL,
PRIMARY KEY (item_code)
CREATE TABLE sections (
section_code CHAR(3) NOT NULL,
name CHAR(15) NOT NULL,
description CHAR(20) NOT NULL,
PRIMARY KEY (section_code)
);
CREATE TABLE tabs (
tab_code CHAR(3) NOT NULL,
name CHAR(15) NOT NULL,
description CHAR(20) NOT NULL,
nature CHAR(1) NOT NULL COMMENT '(A)ttribute, (M)etric, (B)oth',
PRIMARY KEY (tab_code)
INDEX (nature)
);
CREATE TABLE ui_inputs (
ui_code CHAR(20) NOT NULL,
name CHAR(15) NOT NULL,
description CHAR(50) NOT NULL,
PRIMARY KEY (ui_id),
INDEX (ui_code)
);
CREATE TABLE srv_outputs (
out_code CHAR(20) NOT NULL,
name CHAR(15) NOT NULL,
description CHAR(50) NOT NULL,
PRIMARY KEY (ui_id),
INDEX (ui_code)
);
CREATE TABLE apps_inputs (
app_input_id INT AUTO_INCREMENT PRIMARY KEY,
app_id TINYINT(2) UNSIGNED NOT NULL COMMENT 'see shinyapps.apps.app_id',
item_code CHAR(3) UNSIGNED NOT NULL,
section_code CHAR(3) UNSIGNED NOT NULL,
ui_code CHAR(3) NOT NULL,
`default` CHAR(50) NOT NULL,
is_numeric TINYINT(1) UNSIGNED NOT NULL,
has_tracking TINYINT(1) UNSIGNED NOT NULL DEFAULT 0
);
CREATE TABLE apps_outputs (
app_output_id INT AUTO_INCREMENT PRIMARY KEY,
app_id TINYINT(2) UNSIGNED NOT NULL COMMENT 'see shinyapps.apps.app_id',
item_code CHAR(3) UNSIGNED NOT NULL,
tab_code CHAR(3) NOT NULL,
out_code CHAR(3) NOT NULL,
has_tracking TINYINT(1) UNSIGNED NOT NULL DEFAULT 0
);
CREATE TABLE attributes (
app_id TINYINT(2) UNSIGNED NOT NULL,
code CHAR(20) NOT NULL,
name CHAR(50) NOT NULL,
ntitle CHAR(30) NOT NULL,
`group` CHAR(30) NOT NULL,
gtitle CHAR(20) NOT NULL,
title CHAR(40) NOT NULL,
with_cols TINYINT(1) UNSIGNED NOT NULL COMMENT 'Flag for ',
slider TINYINT(1) UNSIGNED NOT NULL COMMENT 'Flag for ',
is_active TINYINT(1) UNSIGNED NOT NULL COMMENT 'Flag for ',
in_filter TINYINT(1) UNSIGNED NOT NULL COMMENT 'Flag for ',
in_theme TINYINT(1) UNSIGNED NOT NULL COMMENT 'Flag for ',
in_popup TINYINT(1) UNSIGNED NOT NULL COMMENT 'Flag for ',
in_download TINYINT(1) UNSIGNED NOT NULL COMMENT 'Flag for ',
has_cumulates TINYINT(1) UNSIGNED NOT NULL COMMENT 'Flag for ',
has_pct TINYINT(1) UNSIGNED NOT NULL COMMENT 'Flag for ',
PRIMARY KEY (app_id, code)
);
CREATE TABLE metrics (
app_id TINYINT(2) UNSIGNED NOT NULL,
code CHAR(20) NOT NULL,
name CHAR(50) NOT NULL,
title CHAR(50) NOT NULL,
formula CHAR(100) NOT NULL,
is_active TINYINT(1) UNSIGNED NOT NULL COMMENT 'Flag for ',
has_pct TINYINT(1) UNSIGNED NOT NULL COMMENT 'Flag for ',
PRIMARY KEY (app_id, code)
);
CREATE TABLE vars_tabs (
app_id TINYINT(2) UNSIGNED NOT NULL,
var_type CHAR(1) COMMENT '(A)ttribute or (M)etric'
var_code CHAR(20) NOT NULL,
in_tab CHAR(3) NOT NULL,
);
Add Comment
Please, Sign In to add comment