Skip to content

Latest commit

 

History

History
146 lines (121 loc) · 5.92 KB

database_structure.md

File metadata and controls

146 lines (121 loc) · 5.92 KB

데이터베이스 구조

기본 개념:

노드란? 기본적으로 단어의 맨 끝 글자를 의미하며, 단어의 특성을 구분짓는 하나의 기준.
예를 들어, '-딍'으로 끝나는 단어는 공격 단어이기에 글자 '딍'은 공격 노드로 볼 수 있음.
또한, '-쁨'으로 끝나는 단어는 더 이상 이을 단어가 존재하지 않는 한방 단어이기에, 글자 '쁨'은 한방 노드로 볼 수 있음. 끝말잇기 규칙에 따른 '단어의 맨 끝 글자'에 대응되는 '일반 노드'가 존재하는 한편, '앞말잇기'의 규칙에 대응되는 '리버스 노드', '끄투'의 규칙에 대응되는 '끄투 노드' 역시 존재하며 각 노드마다 공격 노드, 한방 노드로 분화되어 따로 존재함. 즉, 데이터베이스 전체에는 총 6가지의 다른 노드들이 저장되어 있다고 볼 수 있음.

인덱스란? 단어 검색 속도를 높이기 위해 단어 목록 테이블 상에 존재하는 각 단어들의 첫 글자만을 모아 저장해 둔 열를 의미함.
예시로 단어 '기쁨'의 인덱스는 '기'임. 끝말잇기를 위한 일반 인덱스, 앞말잇기를 위한 리버스 인덱스, 끄투를 위한 끄투 인덱스 등이 모두 존재함.

테이블 목록

테이블 이름 설명
word_list 단어 목록 테이블
endword_list 한방 노드 목록 테이블
attackword_list 공격 노드 목록 테이블
reverse_endword_list 리버스 한방 노드 목록 테이블
reverse_attackword_list 리버스 공격 노드 목록 테이블
kkutu_endword_list 끄투 한방 노드 목록 테이블
kkutu_attackword_list 끄투 공격 노드 목록 테이블
kkt_endword_list 쿵쿵따 한방 노드 목록 테이블
kkt_attackword_list 쿵쿵따 공격 노드 목록 테이블

각 테이블 구조

word_list

예시:

seq word word_index reverse_word_index kkutu_index type theme_1 theme_2 theme_3 theme_4 choseong meaning flags
7216 내현실과온라인게임이러브코미디에침식당하기시작해서위험해 내현 0 0 0 0 0 ㄴㅎㅅㄱㅇㄹㅇㄱㅇㅇㄹㅂㅋㅁㄷㅇㅊㅅㄷㅎㄱㅅㅈㅎㅅㅇㅎㅎ 2048

열 설명

열 이름 타입 설명
seq INT, PRIMARY KEY, AUTOINCREMENT 단어 번호; 매 단어 추가마다 증가됨
word VARCHAR(256) 단어
word_index CHAR(1) 단어 인덱스
reverse_word_index CHAR(1) 리버스 단어 인덱스 (앞말잇기용)
kkutu_word_index VARCHAR(2) 끄투 단어 인덱스 (끄투용)
type INT 단어의 종류 (명사, 동사, 형용사, ...) (현재 사용되지 않음)
theme_1 BIGINT 테마 비트마스크 1 (현재 사용되지 않음)
theme_2 BIGINT 테마 비트마스크 2 (현재 사용되지 않음)
theme_3 BIGINT 테마 비트마스크 3 (현재 사용되지 않음)
theme_4 BIGINT 테마 비트마스크 4 (현재 사용되지 않음)
choseong VARCHAR(256) 단어 초성
한글 단어일 경우 초성만, 영어 단어일 경우 단어 전체가 저장됩니다
meaning TEXT 단어 의미 (현재 사용되지 않음)
flags INT 단어 속성 비트마스크 (끝말잇기 한방 단어, 앞말잇기 공격 단어, 가운뎃말잇기 한방 단어, ...)

단어의 종류

분류 설명
한국어 및 영어 1 명사
한국어 및 영어 2 대명사
한국어 3 수사
한국어 4 조사
한국어 및 영어 5 동사
한국어 및 영어 6 형용사
한국어 7 관사
한국어 및 영어 8 부사
한국어 및 영어 9 감탄사
한국어 10 접속사
한국어 11 의존명사
한국어 및 영어 12 조동사
한국어 13 보조형용사
한국어 14 어미
한국어 15 관형사 및 명사
한국어 16 수사 및 관형사
한국어 17 명사 및 부사
한국어 18 감탄사 및 명사
한국어 19 대명사 및 부사
한국어 20 대명사 및 감탄사
한국어 21 동사 및 형용사
한국어 22 관형사 및 감탄사
한국어 23 부사 및 감탄사
한국어 24 의존명사 및 조사
한국어 25 수사 및 관형사 및 명사
한국어 26 대명사 및 관사
영어 27 자동사
영어 28 타동사
영어 29 전치사

단어 속성 비트마스크

비트 설명
1 1 (20) 끝말잇기 한방 단어
2 2 (21) 끝말잇기 공격 단어
3 4 (22) 앞말잇기 한방 단어
4 8 (23) 앞말잇기 공격 단어
5 16 (24) 가운뎃말잇기 한방 단어
6 32 (25) 가운뎃말잇기 공격 단어
7 64 (26) 끄투 한방 단어
8 128 (27) 끄투 공격 단어
9 256 (28) 쿵쿵따 2글자 단어
10 512 (29) 쿵쿵따 3글자 단어
11 1024 (210) 쿵쿵따 한방 단어
12 2048 (211) 한국어 단어
13 4096 (212) 영어 단어
14 8192 (213) 쿵쿵따 공격 단어
15 16384 (214) 외래어 (현재 사용되지 않음)
16 32768 (215) 어인정 단어 (현재 사용되지 않음)
17 65536 (216) 외래어 (현재 사용되지 않음)
18 131072 (217) 방언 / 사투리 (현재 사용되지 않음)
19 262144 (218) 고어 / 사어 (현재 사용되지 않음)
20 514288 (219) 문화어 (북한말) (현재 사용되지 않음)

어쩌다가 쿵쿵따 한방단어와 공격단어 비트 사이에 한국어, 영어 비트가 끼어들어가버린 걸까...

endword_list, attackword_list, reverse_endword_list, reverse_attackword_list, kkt_endword_list, kkt_attackword_list

예시:

word_index

열 설명

열 이름 타입 설명
word_index CHAR(1) 노드

kkutu_endword_list, kkutu_attackword_list

예시:

word_index
스림

열 설명

열 이름 타입 설명
word_index VARCHAR(2) 노드