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

[BE] 세미나실, 시간표 CRUD 설계 #169

Merged
merged 16 commits into from
Nov 24, 2024
Merged

[BE] 세미나실, 시간표 CRUD 설계 #169

merged 16 commits into from
Nov 24, 2024

Conversation

urinaner
Copy link
Owner

@urinaner urinaner commented Nov 23, 2024

  • 💯 테스트는 잘 통과했나요?
  • 🏗️ 빌드는 성공했나요?
  • 🧹 불필요한 코드는 제거했나요?
  • 💭 이슈는 등록했나요?
  • 🏷️ 라벨은 등록했나요?

주요 기능

1. 세미나실 관리

  • 세미나실 등록/조회/수정/삭제
  • 수용 인원, 위치, 이미지 등 관리
  • 각 세미나실별 예약 현황 관리

2. 시간표 관리

  • 정기 수업 시간표 등록/조회/수정/삭제
  • 요일별 수업 시간 관리 (월~일)
  • 기간별 수업 일정 관리

데이터베이스 구조

세미나실 (SeminarRoom)

CREATE TABLE seminar_room (
    seminar_room_id BIGINT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255),
    person_capacity INTEGER,
    place VARCHAR(255),
    image VARCHAR(255)
);

시간표 (Timetable)

CREATE TABLE timetable (
    timetable_id BIGINT PRIMARY KEY AUTO_INCREMENT,
    start_date DATE,
    end_date DATE,
    start_time TIME,
    end_time TIME,
    week_day VARCHAR(7),
    seminar_room_id BIGINT,
    FOREIGN KEY (seminar_room_id) REFERENCES seminar_room(seminar_room_id)
);

API 엔드포인트

세미나실 API

POST   /api/seminar-rooms      - 세미나실 생성
GET    /api/seminar-rooms/{id} - 세미나실 조회
PUT    /api/seminar-rooms/{id} - 세미나실 수정
DELETE /api/seminar-rooms/{id} - 세미나실 삭제

시간표 API

POST   /api/timetables         - 시간표 생성
GET    /api/timetables         - 전체 시간표 조회
PUT    /api/timetables/{id}    - 시간표 수정
DELETE /api/timetables/{id}    - 시간표 삭제

고려할만한점

쿼리를 줄이는 방식으로 요일을 비트형식으로 설계하는건 어떨까요? (예 : 1000000 일요일 0100000 토요일 00111000 월 화 수)
하지만 직관적이지 않은 문제점이 있는데 본질기반해석으로 생각해봐도 적용해도 괜찮을 것 같아서 얘기해봐요
Closes #164

@urinaner urinaner added enhancement New feature or request 😄 BE labels Nov 23, 2024
@urinaner urinaner requested a review from 2Jin1031 November 23, 2024 18:23
@urinaner urinaner self-assigned this Nov 23, 2024
@2Jin1031
Copy link
Collaborator

수고 하셨습니다~!!
요일 처리는 고민이 필요해보이네요

@2Jin1031 2Jin1031 closed this Nov 24, 2024
@2Jin1031 2Jin1031 reopened this Nov 24, 2024
@2Jin1031 2Jin1031 merged commit f79377c into main Nov 24, 2024
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
😄 BE enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[BE] 세미나실, 시간표 CRUD 설계
2 participants