Skip to content

엔티티 설계 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
    }

Loading
  1. 사용자(User) 관계:

    • 여러 개의 대여 기록(Rental)을 가질 수 있음
    • 여러 개의 결제 수단(PaymentMethod)을 가질 수 있음
    • 현재 진행 중인 대여(currentRental)를 하나만 가질 수 있음
    • 여러 건의 결제(Payment)를 할 수 있음
  2. 자전거(Bike) 관계:

    • 하나의 홈 허브(Hub)에 속함
    • 현재 특정 스테이션(Station)에 위치할 수 있음
    • 여러 건의 대여 기록(Rental)을 가질 수 있음
    • 현재 한 명의 사용자가 이용할 수 있음
  3. 허브(Hub)와 스테이션(Station) 관계:

    • 하나의 허브는 여러 스테이션을 가질 수 있음
    • 각 스테이션은 여러 대의 주차된 자전거를 가질 수 있음
  4. 결제(Payment) 관계:

    • 하나의 대여(Rental)에 대해 하나의 결제가 발생
    • 각 결제는 하나의 결제 수단(PaymentMethod)을 사용