-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinit.sql
More file actions
executable file
·67 lines (59 loc) · 2.26 KB
/
Copy pathinit.sql
File metadata and controls
executable file
·67 lines (59 loc) · 2.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
CREATE TABLE IF NOT EXISTS users (
id SERIAL PRIMARY KEY,
username VARCHAR(255) UNIQUE NOT NULL,
email VARCHAR(255) UNIQUE NOT NULL, -- Add the email column
hashed_password VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS profile (
id SERIAL PRIMARY KEY,
possui_zenodo INTEGER NULL,
possui_osf INTEGER NULL,
possui_arxiv INTEGER NULL,
universidade TEXT NULL,
sobre TEXT NULL,
areas TEXT NULL,
user_id INTEGER NOT NULL,
CONSTRAINT fk_user_profile FOREIGN KEY(user_id) REFERENCES users(id)
);
CREATE TABLE IF NOT EXISTS topico (
id SERIAL PRIMARY KEY,
nome_topico VARCHAR(255) UNIQUE NOT NULL
);
CREATE TABLE IF NOT EXISTS topicos_interesse (
id SERIAL PRIMARY KEY,
profile_id INTEGER NOT NULL,
topico_id INTEGER NOT NULL,
CONSTRAINT fk_topicointeresse_topico FOREIGN KEY(topico_id) REFERENCES topico(id),
CONSTRAINT fk_topicointeresse_profile FOREIGN KEY(profile_id) REFERENCES profile(id)
);
CREATE TABLE IF NOT EXISTS projeto (
id SERIAL PRIMARY KEY,
nome VARCHAR NOT NULL,
descricao TEXT NULL,
id_autor INTEGER NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NULL,
images_urls TEXT NULL,
id_topico INTEGER NOT NULL,
id_osf VARCHAR NULL,
id_zenodo VARCHAR NULL,
tags JSON,
CONSTRAINT fk_topico_projeto FOREIGN KEY(id_topico) REFERENCES topico(id),
CONSTRAINT fk_users_projeto FOREIGN KEY(id_autor) REFERENCES users(id)
);
CREATE TABLE IF NOT EXISTS membros_projeto (
id SERIAL PRIMARY KEY,
id_usuario INTEGER NOT NULL,
id_projeto INTEGER NOT NULL,
CONSTRAINT fk_membro_usuario FOREIGN KEY(id_usuario) REFERENCES users(id),
CONSTRAINT fk_membro_projeto FOREIGN KEY(id_projeto) REFERENCES projeto(id)
);
-- Insert predefined user (optional)
INSERT INTO users (username, email, hashed_password) VALUES ('admin', 'admin@example.com', 'hashed_admin_password');
INSERT INTO topico (nome_topico) VALUES ('Engenharia de Software');
INSERT INTO topico (nome_topico) VALUES ('Grafos');
INSERT INTO topico (nome_topico) VALUES ('Aprendizado de Maquina');
INSERT INTO topico (nome_topico) VALUES ('Estatistica');
INSERT INTO topico (nome_topico) VALUES ('Matematica');
INSERT INTO topico (nome_topico) VALUES ('BigData');