-
Notifications
You must be signed in to change notification settings - Fork 1
Schema
황현수 edited this page Dec 21, 2021
·
9 revisions

Last Update At: 2021-12-19
아래의 텍스트를 복사해 붙여넣기 하시면 보실 수 있습니다:
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)
}
}
Table trainer_interest {
id int [pk, increment]
trainerId int
interest string
}
Ref: "trainers"."id" < "trainer_interest"."trainerId"
Ref: "trainers"."id" < "non_registered_users"."trainerId"
Ref: "user_categories"."id" < "non_registered_users"."userCategoryId"
Ref: "session_exercises"."id" < "session_exercise_volumes"."sessionExerciseId"