Skip to content
Wonjun (Phillip) Choi edited this page Dec 19, 2021 · 9 revisions

Untitled (1)

Last Update At: 2021-12-19

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

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

Enum GenderStatus {
  male
  female
}

Enum SessionTarget {
  user
  trainer
}

Enum SessionStatus {
  active
  canceled
}

Enum LoginTypes {
  local
  google
  kakao
}

Enum DefaultStatus {
  live
  removed
}

Enum InterestTypes {
  PT
  Workout
  Crossfit
  Yoga
  Pilates
  Etc
}

Enum SenderTypes {
  User
  Trainer
}

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 DefaultStatus
  createdAt date
  updatedAt date
  loginType LoginTypes
  userCategoryId int
  interest InterestTypes
  dbPasswordSalt varchar
  
  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
  description varchar
}

Table sessions as S {
  id int [pk, increment]
  userId int
  trainerId int
  status SessionStatus
  feedback varchar
  sentFeedback boolean
  completeSession boolean
  date date
  createdAt date
  updatedAt date
  
  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
  createdAt date
  updatedAt date
  
  indexes {
    (trainerId)
  }
}

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

Table exercises as E {
  id int [pk, increment]
  exercise_category_id int
  name varchar
  createdAt date
  updatedAt date
  
  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
  createdAt date
  updatedAt date
  
  indexes {
    (sessionId)
  }
}

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

Table session_exercise_volumes as SEV {
  id int [pk, increment]
  sessionExerciseId int
  reps int
  sets int
  weight double
  seq int
  createdAt date
  updatedAt date
}

Table chats as C {
  id int [pk, increment]
  text varchar
  userId int
  trainerId int
  status DefaultStatus
  createdAt date
  updatedAt date
  sender SenderTypes
  seen boolean
  
  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
  createdAt date
  updatedAt date
  
  indexes {
    (chatId)
  }
}

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

Table session_histories as SH {
  id int [pk, increment]
  userId int
  trainerId int
  status DefaultStatus
  date date
  costPerSession int
  totalCount int
  usedCount int
  commission int
  createdAt date
  updatedAt date
  
  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
  createdAt date
  updatedAt date
  
  indexes {
    (userId)
  }
}

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

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

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

Table non_registered_users as NRU {
  id int [pk, increment]
  trainerId int
  userName varchar
  phoneNumber varchar
  gender GenderStatus
  status DefaultStatus
  userCategoryId int
  createdAt date
  updatedAt date
  
  indexes {
    (trainerId)
    (trainerId, gender)
  }
}

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

Ref: "user_categories"."id" < "non_registered_users"."userCategoryId"

Ref: "session_exercises"."id" < "session_exercise_volumes"."sessionExerciseId"

Clone this wiki locally