150 lines
4.0 KiB
SQL
150 lines
4.0 KiB
SQL
create table if not exists portfolio.contacts
|
|
(
|
|
id char(22) not null,
|
|
title varchar(64) not null,
|
|
text varchar(512) not null,
|
|
link varchar(1024) null,
|
|
baseSiteLink varchar(512) null,
|
|
icon varchar(128) null,
|
|
iconColour char(6) null,
|
|
constraint contact_id_uindex
|
|
unique (id)
|
|
)
|
|
charset = utf8mb4;
|
|
|
|
alter table portfolio.contacts
|
|
add primary key (id);
|
|
|
|
create table if not exists portfolio.credentials
|
|
(
|
|
id char(22) not null,
|
|
type varchar(32) not null,
|
|
data mediumtext not null,
|
|
expiresAt bigint not null,
|
|
constraint credentials_id_uindex
|
|
unique (id)
|
|
)
|
|
charset = utf8mb4;
|
|
|
|
create index credentials_type_index
|
|
on portfolio.credentials (type);
|
|
|
|
alter table portfolio.credentials
|
|
add primary key (id);
|
|
|
|
create table if not exists portfolio.education
|
|
(
|
|
id char(20) not null,
|
|
location varchar(128) not null,
|
|
level varchar(64) not null,
|
|
subject varchar(64) not null,
|
|
startDate smallint not null,
|
|
endDate smallint not null,
|
|
grade varchar(32) not null,
|
|
constraint education_id_uindex
|
|
unique (id)
|
|
)
|
|
charset = utf8mb4;
|
|
|
|
alter table portfolio.education
|
|
add primary key (id);
|
|
|
|
create table if not exists portfolio.experience
|
|
(
|
|
id char(20) not null,
|
|
title varchar(128) not null,
|
|
description text not null,
|
|
company varchar(128) not null,
|
|
url varchar(128) null,
|
|
iconUrl varchar(256) null,
|
|
endDate bigint null,
|
|
startDate bigint null,
|
|
constraint education_id_uindex
|
|
unique (id)
|
|
)
|
|
charset = utf8mb4;
|
|
|
|
alter table portfolio.experience
|
|
add primary key (id);
|
|
|
|
create table if not exists portfolio.projectSkills
|
|
(
|
|
id char(26) not null,
|
|
projectId char(21) not null,
|
|
skillId char(22) not null,
|
|
constraint projectSkills_id_uindex
|
|
unique (id)
|
|
)
|
|
charset = utf8mb4;
|
|
|
|
create index projectSkills_projects_id_fk
|
|
on portfolio.projectSkills (projectId);
|
|
|
|
create index projectSkills_skills_id_fk
|
|
on portfolio.projectSkills (skillId);
|
|
|
|
alter table portfolio.projectSkills
|
|
add primary key (id);
|
|
|
|
create table if not exists portfolio.projects
|
|
(
|
|
id char(21) not null
|
|
primary key,
|
|
name varchar(128) not null,
|
|
shortDescription varchar(256) null,
|
|
longDescription mediumtext null,
|
|
openSource tinyint(1) default 0 not null,
|
|
repository varchar(1024) null,
|
|
contributors mediumtext null,
|
|
imageUrl varchar(512) null,
|
|
dateAdded bigint not null
|
|
)
|
|
charset = utf8mb4;
|
|
|
|
create index projects_dateAdded_index
|
|
on portfolio.projects (dateAdded);
|
|
|
|
create index projects_id_index
|
|
on portfolio.projects (id);
|
|
|
|
create index projects_openSource_index
|
|
on portfolio.projects (openSource);
|
|
|
|
create table if not exists portfolio.skills
|
|
(
|
|
id char(22) not null,
|
|
type varchar(128) not null,
|
|
name varchar(128) not null,
|
|
link varchar(1024) null,
|
|
imageUrl varchar(1024) not null,
|
|
colour char(6) not null,
|
|
constraint skills_id_uindex
|
|
unique (id)
|
|
)
|
|
charset = utf8mb4;
|
|
|
|
alter table portfolio.skills
|
|
add primary key (id);
|
|
|
|
create table if not exists portfolio.users
|
|
(
|
|
id char(21) not null,
|
|
username varchar(128) null,
|
|
password char(60) not null,
|
|
avatarUrl varchar(256) null,
|
|
webauthnLoginEnabled tinyint(1) default 0 not null,
|
|
webauthnChallenge char(44) null,
|
|
webauthnAuthrInfo mediumtext null,
|
|
webauthnLoginChallenge char(44) null,
|
|
constraint users_id_uindex
|
|
unique (id)
|
|
)
|
|
charset = utf8mb4;
|
|
|
|
create index users_username_index
|
|
on portfolio.users (username);
|
|
|
|
alter table portfolio.users
|
|
add primary key (id);
|
|
|