<aside> ✌️ 질문(문법 차이, 답 유도가 잘 안되어 크게 활용하지는 못했습니다) https://chat.openai.com/share/a5e26edc-f683-4d61-813c-6e8a0a0cd1a6 Chat GPT에게 구체적으로 업무의 형태를 날리거나 프롬프트를 날려 받았다면 좀 더 좋은 결과를 얻을 수 있엇겟지만, ChatGPT 3.0이 학습한 mermaid 문법이 과거의 문법이라 질의 및 확인이 힘들었 던 듯 합니다.

</aside>

엔티티 및 속성 설계 :

erDiagram
    "study_group" {
        INT group_id PK
        STRING group_name  "그룹 이름"
        STRING description  "그룹 설명"
        DATE foundation_date "그룹 설립일"
    }

    "presentation_topic" {
        INT topic_id PK
        STRING topic_name "주제 이름"
        STRING descriptio "주제 설명"
    }

    "presentation" {
        INT presentation_id PK
        STRING presenter "발표자"
        DATE date_time "발표 일시"
        STRING location "발표 장소"
    }

    "subject" {
        INT subject_id PK
        STRING subject_name "과목 이름"
        STRING description "과목 설명"
    }

    "member" {
        INT member_id PK
        STRING name "이름"
        STRING email "이메일"
        STRING contact_number "연락처"
    }

    "attendance" {
        STRING attendance_id PK
        INT group_id FK  "그룹 ID"
        INT presentation_id FK "발표 ID"
        INT member_id FK "회원 ID"
    }

    "penalty" {
        INT penalty_id PK
        INT  member_id FK "회원 ID"
        STRING penalty_content "벌칙 내용"
        DATE imposition_date "적용 일자"
    }

    "fine" {
        INT fine_id PK
        INT member_id FK "회원 ID"
        STRING fine_content "벌금 내용"
        DATE imposition_date "적용 일자"
        DECIMAL amount "금액"
    }

    "rule" {
        INT rule_id PK
        STRING rule_name "룰 이름"
        STRING description "룰 설명"
    }

    "membership_fee" {
        INT fee_id PK
        INT group_id FK "그룹 ID"
        STRING fee_name "회비 이름"
        DECIMA amount "금액"
        DATE payment_date "납부 일자"
    }

    "location" {
        INT location_id PK
        STRING location_name "장소 이름"
        STRING address "주소"
        STRING operating_hours "운영 시간"
    }

    "toy_project" {
        INT project_id PK
        STRING project_name "토이 프로젝트 이름"
        STRING description "토이 프로젝트 설명"
        DATE start_date "시작 일자"
        DATE end_date "종료 일자"
    }

    "side_project" {
        INT project_id PK
        STRING project_name "이드 프로젝트 이름"
        STRING description "사이드 프로젝트 설명"
        DATE start_date "시작 일자"
        DATE end_date "종료 일자"
    }

해당 설계는 스터디 공통 주제를 찾고 실질적으로 이용 가능한 것으로만 찾았습니다. 러프하게 공통 관심사만 가지고 잡았습니다.

중간 관계 :

메인 엔티티를 직관적으로 멤버와 스터디 그룹으로 잡고 이후의 관계를 잡아냈습니다. 모델링 시 관계까 복잡하게 얽혀 있을 확률이 높아 중간 단계를 가지고 왔습니다.

복합 식별자를 복잡하지 않게 고려하지 않고 sequential 한 PK를 잡았습니다. 차후 물리모델 에서 Sequence 생성이 가능한 DB사용을 적극적으로 사용 예정입니다.

또한, 직접적인 저장 속성외의 세부적인 속성도 깊히 생각하지않은 상태입니다.