Skip to content
황현수 edited this page Nov 30, 2021 · 9 revisions
스크린샷 2021-11-30 오후 10 19 23

Last Update At: 2021-11-30

dbdiagram.io 에서 직접 확인하려면

아래의 텍스트를 복사해 붙여넣기 하시면 보실 수 있습니다:

Enum GenderStatus {
  male
  female
}

Enum SessionTarget {
  user
  trainer
}

Enum SessionStatus {
  active
  canceled
}

Enum LoginTypes {
  local
  google
  kakao
}

Enum DefaultStatus {
  live
  removed
}

Table users as U {
  id int [pk, increment]
  trainerId int
  email varchar [not null, unique]
  userName varchar
  password varchar
  birthDate date
  phoneNumber varchar
  gender GenderStatus
  graduate boolean
  status varchar
  createdAt date
  updatedAt date
  loginType LoginTypes
  userCategoryId int
  
  indexes {
    (trainerId)
  }
}

Ref: "users"."trainerId" > "trainers"."id"

Table trainers as T {
  id int [pk, increment]
  email varchar [not null, unique]
  userName varchar
  password varchar
  birthDate date
  phoneNumber varchar
  gender GenderStatus
  status varchar
  createdAt date
  updatedAt date
  loginType LoginTypes
}

Table sessions as S {
  id int [pk, increment]
  userId int
  trainerId int
  status SessionStatus
  feedback varchar
  
  indexes {
    (userId)
    (trainerId)
  }
}

Ref: "users"."id" < "sessions"."userId"
Ref: "trainers"."id" < "sessions"."trainerId"

Table exercise_categories as EC {
  id int [pk, increment]
  trainerId int
  name varchar
  
  indexes {
    (trainerId)
  }
}

Ref: "trainers"."id" < "exercise_categories"."trainerId"

Table exercises as E {
  id int [pk, increment]
  exercise_category_id int
  name varchar
  
  indexes {
    (exercise_category_id)
  }
}

Ref: "exercise_categories"."id" < "exercises"."exercise_category_id"

Table session_exercises as SE {
  id int [pk, increment]
  sessionId int
  name varchar
  reps int
  sets int
  weight double
  
  indexes {
    (sessionId)
  }
}

Ref: "session_exercises"."sessionId" > "sessions"."id"

Table chats as C {
  id int [pk, increment]
  text varchar
  userId int
  trainerId int
  status DefaultStatus
  
  indexes {
    (userId, trainerId, status)
    (userId, trainerId)
    (status)
  }
}

Ref: "users"."id" < "chats"."userId"
Ref: "trainers"."id" < "chats"."trainerId"

Table imgs as I {
  id int [pk, increment]
  url varchar
  chatId int
  
  indexes {
    (chatId)
  }
}

Ref: "chats"."id" < "imgs"."chatId"

Table session_histories as SH {
  id int [pk, increment]
  userId int
  status DefaultStatus
  date date
  costPerSession int
  totalCount int
  usedCount int
  comission int
  
  indexes {
    (userId)
  }
}

Ref: "users"."id" < "session_histories"."userId"

Table inbodies as IB {
  id int [pk, increment]
  userId int
  bodyWeight double
  muscleWeight double
  bodyFat double
  status DefaultStatus
  measuredDate date
  
  indexes {
    (userId)
  }
}

Ref: "users"."id" < "inbodies"."userId"

Table user_categories as UC {
  id int [pk, increment]
  trainerId int
  name varchar
  status DefaultStatus
  
  indexes {
    (trainerId)
  }
}

Ref: "trainers"."id" < "user_categories"."trainerId"
Ref: "user_categories"."id" < "users"."userCategoryId"

Table non_registered_members as NRM {
  id int [pk, increment]
  trainerId int
  userName varchar
  phoneNumber varchar
  gender GenderStatus
  status DefaultStatus
  
  indexes {
    (trainerId)
    (trainerId, gender)
  }
}

Ref: "trainers"."id" < "non_registered_members"."trainerId"

Clone this wiki locally