-
Notifications
You must be signed in to change notification settings - Fork 0
엔티티 설계 ver.01
LeeJongSeon edited this page Oct 27, 2024
·
1 revision
erDiagram
User ||--o{ Rental : "has"
User ||--o{ PaymentMethod : "has"
User ||--o{ Payment : "makes"
User ||--o{ Bike : "currently_using"
User ||--|| Rental : "current_rental"
Bike ||--o{ Rental : "has"
Bike }|--|| Hub : "home_hub"
Bike }|--o| Station : "current_station"
Hub ||--o{ Station : "has"
Station ||--o{ Bike : "has_parked"
Rental ||--|| Payment : "has"
Payment }|--|| PaymentMethod : "uses"
User {
Long id PK
String email
String password
String name
String phone
UserStatus status
Integer penaltyCount
boolean hasRegisteredPayments
}
Bike {
Long id PK
String qrCode UK
Integer batteryLevel
BikeStatus status
Double currentLatitude
Double currentLongitude
}
Hub {
Long id PK
String name
}
Station {
Long id PK
String name
Double latitude
Double longitude
Integer capacity
}
Rental {
Long id PK
LocalDateTime startTime
LocalDateTime endTime
Integer usageMinutes
Integer pauseMinutes
RentalStatus status
}
Payment {
Long id PK
Integer amount
PaymentStatus status
String transactionId
String failureReason
}
PaymentMethod {
Long id PK
String cardNumber
String cardCompany
boolean isDefault
PaymentMethodStatus status
}
-
사용자(User) 관계:
- 여러 개의 대여 기록(Rental)을 가질 수 있음
- 여러 개의 결제 수단(PaymentMethod)을 가질 수 있음
- 현재 진행 중인 대여(currentRental)를 하나만 가질 수 있음
- 여러 건의 결제(Payment)를 할 수 있음
-
자전거(Bike) 관계:
- 하나의 홈 허브(Hub)에 속함
- 현재 특정 스테이션(Station)에 위치할 수 있음
- 여러 건의 대여 기록(Rental)을 가질 수 있음
- 현재 한 명의 사용자가 이용할 수 있음
-
허브(Hub)와 스테이션(Station) 관계:
- 하나의 허브는 여러 스테이션을 가질 수 있음
- 각 스테이션은 여러 대의 주차된 자전거를 가질 수 있음
-
결제(Payment) 관계:
- 하나의 대여(Rental)에 대해 하나의 결제가 발생
- 각 결제는 하나의 결제 수단(PaymentMethod)을 사용
🍎 말고 🍅