socket db 설계
1.user entity
-friend :Friend 자기참조관계 , m:m . friend 조인테이블
-match : Match 자기참조관계 , n:m , match 조인테이블
-block : Block 자기참조관계 , n:m, block 조인테이블
-avatar : Avatar. 1:1
-auth42 : Auth42, 1:1
-id:number
-username(unique):string
-token:string
-createdat,udpatedat, deleteat:date or string
-userStatus:enum(online, offline, chat,game game)
-rank: number
2.avatar
-id:number
-filename:string
-photoData:buffer
-user:User 1:1
3.match entity (user와 User의 조인테이블)
-id:number
-winner:User
-loser:User
-createdAt:date
-winnerScore:number
-loserScore:number
-createdat:date
4.Firend entity (user와 User의 조인테이블)
-id:number
-friendOfferUser:User
-friend:User
5.block entity (user와 User의 조인테이블)
-id:number
-blockOfferUser:User
-blockedUser:User
1. chatRoom
-admin:user n:m, admin 조인테이블
-joineduser:user n:m, joineduser 조인테이블
-muteduser:user n:m , muteduser 조인테이블
-banneduser:user n:m, banneduser 조인테이블
-log:user n:m log 조인테이블
-owner:user n:1
-id:number
-status:enum ("public", "private", protected)
-password:string
2. chatRoomDm
-admin:user[] n:m, admin 조인테이블
-joineduser:user[] n:m, joineduser 조인테이블
-owner:user n:1
-log:log[] 1:n
-id:number
-status:enum (public, private, "protected")
# -password:string
# -mute:user[] n:m ?
# -ban:user[]
3.chatLog (user와 chatroom의 조인테이블)
-user:user 1:n
-chatroomId:number 1:1
-id:number
-message:string
-createad:date
4. Muteduser (user와 chatroom의 조인테이블)
-id:number
-user:user
-channel : channel
-endMute:date
5. banneduser (user와 chatroom의 조인테이블)
-id:number
-user:user
-channel : channel
-endMute:date
6. admin (user와 chatroom의 조인테이블)
-id:number
-user:user
-channel : channel
7. joinedUser (user와 chatroom의 조인테이블)
-id:number
-user:user
-channel : channel