-
Notifications
You must be signed in to change notification settings - Fork 0
DB설계
Jo In Hyeok edited this page Nov 13, 2021
·
8 revisions
- STRING -> VARCHAR(191)
칼럼 | 타입 | 옵션 | 설명 |
---|---|---|---|
id |
INT | PK | 유저 고유 ID |
name |
STRING | NOT NULL | 유저이름 |
email |
STRING | NOT NULL | 유저 이메일 |
height |
FLOAT | 키 | |
weight |
FLOAT | 몸무게 |
칼럼 | 타입 | 옵션 | 설명 |
---|---|---|---|
id |
INT | PK | 멀티런 고유 ID |
roomImage |
STRING | 룸의 배너 이미지 | |
title |
STRING | NOT NULL | 방 이름 |
status |
enum(string) | NOT NULL | 방 상태 |
description |
TEXT | 방 설명 | |
startTime |
DATE | NOT NULL | 러닝 시작 시간 |
limitTime |
INT | NOT NULL | 러닝 제한 시간 |
limitMember |
INT | NOT NULL | 방 최대인원 |
targetDistance |
INT | NOT NULL | 목표 거리 |
-
status
:Open
orClose
,Open
: 방이 열림 멤버 모집 상태,Close
: 러닝 중 혹은 종료된 상태
-
MultiRun
과User
의 N:M 테이블
칼럼 | 타입 | 옵션 | 설명 |
---|---|---|---|
roomId |
INT | NOT NULL |
MultiRun 아이디 (FK) |
userId |
INT | NOT NULL |
User 아이디 (FK) |
runId |
Types.ObjectId(string) | 러닝ID(moongoose Runnings 스키마id) | |
isOwner |
Boolean | NOT NULL, DEFAULT False | 방장 여부 |
칼럼 | 타입 | 옵션 | 설명 |
---|---|---|---|
roomId |
INT | NOT NULL |
MultiRun 아이디 |
userId |
INT | NOT NULL |
User 아이디 |
socketId |
uuid(string?) | 소켓 아이디 |
- 유저가 현재 어떤 룸에 접속해있는지, 소켓 연결이 끊겼는지 확인하기 위한 테이블
-
RunState
에 유저 아이디가 없으면 참여중인 방이 없음 -
socketId
가 비어있으면 네트워크 에러 혹은 앱을 재시작해서 socketId가 유실된 상태임. - socket이 disconneted 되면 러닝 상태에 socketId를 비워줌