ERD Design - programmers-kdt-full-stack-3rd/live-chat GitHub Wiki
ERD ě¤ęł
https://dbdiagram.io/
Table verifications {
id integer [primary key, increment]
code varchar(255) [not null]
jti varchar(64) [not null]
expired_at timestamp [not null]
created_at timestamp [default: `CURRENT_TIMESTAMP`]
updated_at timestamp [default: `CURRENT_TIMESTAMP`]
}
Table users {
id integer [primary key, increment]
email varchar(255) [unique, not null]
name varchar(255) [unique, not null]
password_hash varchar(255) [not null]
salt varchar(40) [not null]
created_at timestamp [default: `CURRENT_TIMESTAMP`]
updated_at timestamp [default: `CURRENT_TIMESTAMP`]
}
Table user_sessions {
id integer [primary key, increment]
client_id varchar(255) [not null, unique]
user_id integer [not null]
user_agent varchar(255) [not null]
ip_address varchar(40) [not null]
refresh_token varchar(2048) [not null]
revoked boolean [not null, default: false]
expired_at timestamp [not null]
created_at timestamp [not null, default: `CURRENT_TIMESTAMP`]
updated_at timestamp [not null, default: `CURRENT_TIMESTAMP`]
last_accessed_at timestamp [not null, default: `CURRENT_TIMESTAMP`]
indexes {
(user_id, ip_address, user_agent) [unique]
}
}
Table chatrooms {
id integer [primary key]
title varchar(255) [not null]
content text
upadated_at timestamp [default: `CURRENT_TIMESTAMP`]
}
Table messages {
id integer [primary key]
user_id integer
chat_room_id integer
content text
sent_at timestamp [default: `CURRENT_TIMESTAMP`]
}
Table user_chatroom {
user_id integer [primary key]
chat_room_id integer [primary key]
}
Ref: user_sessions.user_id > users.id [delete: cascade]
Ref: user_chatroom.user_id > users.id
Ref: user_chatroom.chat_room_id > chatrooms.id
Ref: messages.user_id > users.id
Ref: messages.chat_room_id > chatrooms.id