-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
documentationImprovements or additions to documentationImprovements or additions to documentation
Description
ERD
- 건물 위키는 건물이 등록되는 순간 생성된다.
- 하나의 건물 위키 페이지는 각 단락을 Node로 하는 Linked List와 같은 형태를 띤다.
- 단락이 추가될 경우, 단락에 새로운 ID를 부여한다. 단락이 추가될 때, 서로 인접한 두 단락 사이에 삽입된다. 각 단락의 ID를 추가되는 단락의 이전 단락 ID, 다음 단락 ID에 할당한다.
- 이전 단락 ID가 없는 단락은 그 건물 위키 페이지의 첫 번째 단락이다.
- 이후 단락 ID가 없는 단락은 그 건물 위키 페이지의 마지막 단락이다.
- 단락이 삭제될 경우, 그 데이터가 데이터베이스에서 삭제되지 않는다. 대신 삭제 여부가 TRUE로 체크된다.
- 히스토리는 단락이 수정될 때 추가된다.
- 히스토리가 하나밖에 없는 단락은 새로 추가된 단락이다.
로직
시작
- 건물이 등록되면 새로운 위키가 생성된다. 이 시점에 건물 위키 테이블에 데이터가 있지만 단락, 히스토리 테이블에는 그 건물 위키의 데이터가 없다.
조회
- 특정 건물 위키 ID를 참조하고 있는 단락들을 가져온다. Linked List 형식으로 단락을 순서대로 배열하여 하나의 페이지를 만들어 사용자에게 보여준다.
수정
기존에 있던 단락을 수정할 경우
- 클라이언트단에서 해당 단락이 수정됐다는 표시를 한다. 이후 수정된 단락만 서버로 보내 데이터 처리를 요청한다.
- 서버에서는 단락 테이블의 내용을 업데이트하고, 히스토리를 추가한다.
새로운 단락을 추가할 경우
- 클라이언트단에서 단락이 추가된 위치를 포함하는 데이터를 서버로 보낸다.
- 서버에서는 해당 단락을 추가하고, 히스토리를 추가한다.
연속된 두 개 이상의 단락을 추가할 경우
- 클라이언트단에서 연속된 단락들을 서버로 보낸다.
- 서버에서 각 단락에 ID를 부여하고 이전 단락 ID, 다음 단락 ID를 할당함으로써 단락을 테이블에 추가한다.
단락을 삭제할 경우
- 클라이언트단에서 삭제된 단락 ID를 서버로 보낸다.
- 서버에서 삭제된 단락들의 삭제 여부를 TRUE로 체크한다.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
documentationImprovements or additions to documentationImprovements or additions to documentation
