· 6 years ago · Jun 05, 2019, 03:28 PM
1DROP TABLE IF EXISTS users_logs;
2DROP TABLE IF EXISTS users;
3
4create table users
5(
6 id INT
7 constraint users_pk
8 primary key,
9 email varchar(255) not null -- unique login in the system
10);
11
12create table users_logs
13(
14 id serial
15 constraint users_logs_pk
16 primary key,
17 log TEXT,
18 user_id int,
19 created_at timestamp,
20 FOREIGN KEY (user_id) REFERENCES users (id)
21);
22
23CREATE INDEX idx_user_id
24ON users_logs(user_id);
25
26CREATE INDEX idx_email ON users(email);
27
28
29
30INSERT INTO users (id, email) VALUES (1, '1@test.com');
31INSERT INTO users (id, email) VALUES (2, '2@test.com');
32INSERT INTO users (id, email) VALUES (3, '3@test.com');
33-- ...another 1m users
34
35INSERT INTO users_logs (id, log, user_id, created_at) VALUES (1, 'error', 1, '2019-05-20 08:15:30.258000');
36INSERT INTO users_logs (id, log, user_id, created_at) VALUES (2, 'warning', 2, '2019-05-20 08:19:15.300000');
37INSERT INTO users_logs (id, log, user_id, created_at) VALUES (3, 'notice', 3, '2019-05-20 08:19:37.022000');
38INSERT INTO users_logs (id, log, user_id, created_at) VALUES (6, 'error 2', 1, '2019-05-20 08:15:30.258000');
39INSERT INTO users_logs (id, log, user_id, created_at) VALUES (7, 'err', 2, '2019-05-20 08:20:10.021000');
40INSERT INTO users_logs (id, log, user_id, created_at) VALUES (8, 'error 3', 3, '2019-05-20 08:15:30.258000');