2. DB 구조 및 관계

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