Skip to content

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

@woody35545

Description

@woody35545

✔️ 기존 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 이라고 사용하고 있음.

Metadata

Metadata

Assignees

Labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions