주요 도메인
사용자(User)
- 신뢰도
- 매너 등급(점수로 보관)
- 프로필
- 주 활동 지역
Could
- 경력/실력
Must
- N년차
- 참여 횟수
- 라이딩 총 거리
- 초/중/고
User
RiderProfile
Manner
Contact
Bicycle
라이딩(매칭 대상)
RidingPost
Condition
Route
RidingPostComment
연결 테이블
RidingParticipate
ERD
- Embedded Type의 경우 해당 엔티티 내에 표기 + 다이어그램에 연결해서 내부 설명
- 단, 값을 하나만 가지는 EmbeddedType은 간단하게 필드 값을 꺼내서 엔티티에 표기했음(Age → birthDate)
erDiagram BaseTimeEntity { LocalDateTime createdAt LocalDateTime updatedAt } BaseImageEntity { String url String originalFileName } User { Long id String nickname LocalDate birthDate RiderProfile profile Sex sex Contact contact String introduction Short mannerPoint Long imageId } User ||--|| Contact : has Contact { Email email PhoneNumber phoneNumber } User ||--|| RiderProfile : has RiderProfile { Year ridingYear Level level } User |o--|| ProfileImage: has ProfileImage{ Long id String url String originalFileName } User |o--|{ RidingParticipate : participate RidingParticipate { Long id Long paticipantId Long ridingId boolean attendance } RidingPost ||--|{ RidingParticipate : hosts User ||--|{RidingPost : hosts RidingPost { Long id String title String contents State state Condition condition Long hostId } RidingPost ||--o{ RidingImages : has RidingImages { Long id String url String originalFileName } RidingPost ||--|| Condition : has Condition { Level level Year ridingYear } Route ||--|| RidingPost : has Route { Space start Space end } RidingPostComment }o--||RidingPost : has User ||--o{ RidingPostComment :write RidingPostComment { Long id Long postId Long authorId String contents } RiderProfile ||--o{ UserBycycle : has RidingConditionBycycle }o--|| Condition : has Bycycle { Long id Type type String name } UserBycycle }o--||Bycycle : connect UserBycycle { Long id Long userId Long bycycleId } RidingConditionBycycle }o--|| Bycycle : connect RidingConditionBycycle { Long id Long ridingPostId Long bycycleId }