지인중에 온라인 강좌를 회원 가입해서 볼 수 있는게 필요하다고 해서 사이드 프로젝트로 해볼까 생각중에 문득 오늘 해보는 것도 좋을 것 같아서 시작하게 되었습니다.
서비스 구성은 일단 최근에는 오라클보다 mariadb를 주로 사용중이고 하니 전에 구성해 두었던 mariadb에 생성하면서 정리해보려 합니다.
크게 서비스 구성은 관리자 사이트랑 회원 사이트, 강사용 사이트 정도로 구성하고, 회원 사이트는 Thymeleaf로 만들고 추후 flutter, react 로 만들어 볼까 합니다. 뭐 이건 심심풀이 프로젝트라 심심하지 않으면 진행인 안될 수 있습니다. 지인이 당장 필요하다고 이야기한 것도 아니어서 기한은 없는 프로젝트라 파일롯 프로젝트로 디자인을 포기하고 한달 목표로 진행하고 주말에 살짝 시간내서... ㅡ.ㅡ 마구 시간내서... 지인이 년말에 제촉하니 한여름 가기전에는 해 놓아야 겠네요...
시작은 가볍게... 디자인 딴지는 지인이 감각이 좋은 관계로 최종 디자인 작업은 지인에게 넘길 생각도 가지고 있습니다. 그런 관계로 스피드하게...
1. 기본 접근 정보 만들기
create database studydb;
create user 'studyon'@'%' identified by 'studyon1234';
grant all privileges on studydb.* to 'studyon'@'%';
flush privileges;
show databases;
2. 생성한 유저로 로그인해서 ( studyon ) 기본 테이블 생성하기
테이블 고민하다보니 심심풀이 프로젝트로 접근하려면 일단 간단하게 접근하고 보완하는 방식으로 가야할 것 같습니다. 테이블3개 만드는데 너무 이것 저것 따지고 오래 걸리네요.
이글을 보시는 분들 중에 경험삼아 가볍게 따라 해보시는 분들은 필요한 기능을 우선적으로 설계하고 프로그램 확장하면서 기능에 맞춰서 table 변경하는 것을 추천합니다. 반대로 고민을 해서 DB설계 하실 분들은 테이블별 필요내용들을 작성하고 화면스토리보드를 작성 후 데이터를 도출하여 정규화 과정을 거친 항목들을 테이블에 반영 후 전체 프로세스를 검토반영해서 테이블 설계보완이 된 후 생성하는 것을 추천합니다.
use studydb;
CREATE TABLE t_users (
user_seq BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '고유 id',
user_id VARCHAR(50) NOT NULL COMMENT '사용자 id',
user_name VARCHAR(200) NOT NULL COMMENT '사용자 성명',
user_pw VARCHAR(255) NOT NULL COMMENT '사용자 비밀번호',
author_cd char(5) DEFAULT NULL COMMENT '권한 코드',
pw_updt_yn char(1) DEFAULT 'N' COMMENT '비밀번호 변경 여부',
pw_updt_dt timestamp DEFAULT NULL COMMENT '비밀번호 변경 일시',
pw_failr_cnt int(11) DEFAULT NULL COMMENT '비밀번호 실패 횟수',
last_conect_dt timestamp NULL DEFAULT NULL COMMENT '최근접속일시',
use_yn char(1) DEFAULT 'Y' COMMENT '사용 여부',
user_del_dt timestamp NULL DEFAULT NULL COMMENT '삭제일시',
user_del_dsc varchar(1000) NULL COMMENT '삭제설명ex불랙회원,불량ID',
email VARCHAR(200) NULL COMMENT '회원이메일',
hp VARCHAR(20) NULL COMMENT '회원hp',
reg_dt timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() COMMENT '등록일시',
req_id varchar(50) DEFAULT NULL COMMENT '등록id',
up_dt timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() COMMENT '수정일시',
up_id varchar(50) DEFAULT NULL COMMENT '수정id'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='일반사용자';
CREATE TABLE t_course (
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '고유 id',
title VARCHAR(1000) NOT NULL COMMENT '강의풀제목',
s_title varchar(100) not null COMMENT '강의제목약어',
description TEXT COMMENT '강의설명',
video_url VARCHAR(255) NULL COMMENT '강의영상url',
file_list_id varchar(200) NULL COMMENT '강의관련파일목록',
reg_dt timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() COMMENT '등록일시',
req_id varchar(50) DEFAULT NULL COMMENT '등록id',
up_dt timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() COMMENT '수정일시',
up_id varchar(50) DEFAULT NULL COMMENT '수정id'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='강의목록';
CREATE TABLE t_user_course (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
user_seq BIGINT,
course_id BIGINT,
progress INT DEFAULT 0,
reg_dt timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() COMMENT '등록일시',
req_id varchar(50) DEFAULT NULL COMMENT '등록id',
up_dt timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() COMMENT '수정일시',
up_id varchar(50) DEFAULT NULL COMMENT '수정id',
FOREIGN KEY (user_seq) REFERENCES t_users(user_seq),
FOREIGN KEY (course_id) REFERENCES t_course(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='수강목록';
--------- 기본 spring boot 웹 서비스 구성중...(계속...)
'database > mariadb' 카테고리의 다른 글
database관련 잡학정리 (0) | 2024.09.05 |
---|---|
계정 권한 주기 (0) | 2023.08.19 |
mariadb docker 설치(2023.07.11) (0) | 2023.07.11 |