Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

리팩토링을 위해 기존 데이터베이스 ERD 작성 #62

Open
woody35545 opened this issue Sep 22, 2023 · 0 comments
Open

리팩토링을 위해 기존 데이터베이스 ERD 작성 #62

woody35545 opened this issue Sep 22, 2023 · 0 comments
Assignees
Labels
documentation Improvements or additions to documentation refactoring todo

Comments

@woody35545
Copy link
Member

woody35545 commented Sep 22, 2023

✔️ 기존 Database ERD

erDiagram
  member_table{
        VARCHAR member_id PK "회원 식별자"
        VARCHAR user_id "아이디"
        VARCHAR user_info "비밀번호"
        VARCHAR user_name "이름"
        VARCHAR user_email "이메일"
        VARCHAR user_roles "권한"
    }

  member_table || -- o{ template_table : "Member(1):Template(0..N)"
    
	template_table{
      VARCHAR template_id PK "템플릿 식별자"
			VARCHAR teamplate_owner FK "소유자의 회원 식별자"
			VARCHAR template_name "템플릿명"
			TIMESTAMP created_at "생성 시간" 
			TINYINT is_public "공개 여부"
}
  template_doc_table || -- |{ template_table : "TemplateDoc(N):Template(1)"
	template_doc_table{
		INT template_doc_id PK "템플릿 도큐먼트 식별자"
		VARCHAR template_id FK "템플릿 식별자"
		VARCHAR question_id FK "질문 식별자"
		INT question_order "질문 순서" 
	}
	
	preset_table{
		VARCHAR preset_id PK "프리셋 식별자"
		VARCHAR preset_name "프리셋명"
	}

	preset_doc_table }| -- || preset_table : "PresetDoc(N):Preset(1)"
	%% `PresetDoc`은 하나의 Preset을 이루는 항목이다.
	preset_doc_table{
		VARCHAR preset_doc_id PK "프리셋 도큐먼트 식별자"
		VARCHAR	preset_id FK "도큐먼트가 속한 프리셋 식별자"
		VARCHAR	question_id "프리셋 도큐먼트에 대한 질문 식별자"
		INT question_order "질문 순서"
	}

	replyer_table{
		VARCHAR replyer_id PK "답변자의 식별자"
		VARCHAR replyer_name FK "답변자의 닉네임"
	}


	answer_table || -- || replyer_table : "Answer(1):Replyer(1)"
	answer_table || -- || template_doc_table : "Answer(1):TemplateDoc(1)"
	answer_table{
		VARCHAR answer_id PK "답변 식별자"
		VARCHAR replyer_id FK "답변자 식별자"
		INT doc_id FK "답변한 템플릿 도큐먼트 식별자"
		VARCHAR answer_content "답변 식별자"
		TINYINT is_public "답변 공개 여부"
		TIMESTAMP answer_time "답변 생성 시간"
	}


	question_table }o -- || member_table : "Question(0..N):Member(1)"
	
	question_table{
		VARCHAR question_id PK "질문 식별자"
		VARCHAR question_content "내용"
		INT question_category_id "질문 카테고리"
		VARCHAR question_created_by FK "질문을 생성한 회원 식별자"
	}

Loading

✔️ 변경하면 좋겠다고 생각한 부분

  • 일부 외래키에 해당하는 컬럼이 데이터베이스 상에서 FK로 지정되어 있지 않은 문제
  • question_table에서 category를 int로 받고 있는데 명확히 정해진 것이나 문서화 된 것이 없어서 의미가 불분명함
  • preset_tabletemplate_table, preset_doc_tabletemplate_doc_table이 동일한 구조인데 불필요하게 중복된 구조로 보임
  • 일부 컬럼명이 통일성이 있으면 좋겠다고 생각, 예를 들어서 같은 생성시간을 의미하는 컬럼인데 template_table에서는 created_at 이라고 사용하고 answer_table에서는 answer_time 이라고 사용하고 있음.
@woody35545 woody35545 added documentation Improvements or additions to documentation todo labels Sep 22, 2023
woody35545 added a commit that referenced this issue Sep 22, 2023
리팩토링을 위해 현시점에 적용되어 있는 ERD 작성
@woody35545 woody35545 self-assigned this Sep 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation refactoring todo
Projects
None yet
Development

No branches or pull requests

1 participant