TeamFILL-IN / server-renew

spring base

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

초기 설계

daehwan2da opened this issue · comments

질문 거리

  • nickname 초기 세팅에 대한 정책이 있는지?
    • 랜덤이라면 어떤 값을 넣어주어야할지?
  • image upload 방식 변경 가능할지?
    • multi part -> octet-stream
  • client 에서 사진에 대한 가로-세로 정보는 어떤 식으로 판단하는지?
  • index 는 차후 고려

account

CREATE TABLE account (
  no  bigint auto_increment primary key,
  social  varchar(10) not null,
  social_id varchar(100) not null,
  refresh_token  varchar(500) ,
  user_no bigint,

  unique (social, social_id)
);

fillin_user

CREATE TABLE filiin_user (
 no bigint auto_increment primary key,
 nickname  varchar not null,
 profile_image_path varchar(500),
 status varchar(10) not null
);

studio

  • 정규화시킬지?
    • 시키게 되면 기존 데이터 보고 어떻게 마이그레이션 할지도 고민해야함
CREATE TABLE studio (
 no  bigint auto_increment primary key,
 name varchar(50) not null,
 address varchar (500) ,
 tel varchar(50),
 latitude double,
 longitude double,
 etc text,
 status varchar(10) not null,
 site varchar(500),
);

studio_price

CREATE TABLE price (
 no bigint auto_increment primary key,
 studio_no bigint not null,
 name varchar(100),
 amount int,
);

studio_running_time

CREATE TABLE running_time (
 no bigint auto_increment primary key,
 studio_no bigint not null,
 day_of_week enum('MON', 'TUE', 'WED', 'THR', 'FRI', 'SAT', 'SUN') not null,
 start_at datetime,
 end_at datetime
);

film

CREATE TABLE film (
 no bigint auto_increment primary key,
 name varchar(100) not null,
 type_no bigint not null,
 company_no bigint not null
);
CREATE TABLE film_type (
 no bigint auto_increment primary key,
 name varchar(50) not null
);

company

CREATE TABLE company (
 no bigint auto_increment primary key,
 name varchar(50) not null
);

photo

  • meta data 는 추후에 필요시 테이블 확장
  • like count 는 Redis 로 확장
CREATE TABLE photo (
 no bigint auto_increment primary key,
 user_no bigint not null,
 studio_no bigint not null,
 film_no bigint not null,
 image_path varchar(500) not null,
 status varchar(10) not null,
 created_at datetime,
 update_at datetime
);

reaction_history

CREATE TABLE reaction_history (
  no bigint auto_increment primary key,
  user_no bigint not null,
  target_type varchar(50) not null,
  target_no bigint not null,
  created_at datetime
 
  unique (user_no, target_type, target_no)
);
  • User
    • oauth + 내정보
  • studio
    • 위도/경도
    • 검색
  • photo
    • 업로드 (stream)
    • 다운로드 ( domain + path )
  • film
  • reaction
    • photo like
    • bookmark