오늘은 11월 5일 5일차이다.
오늘은 시간이 없는 관계로 sequelize 패키지 설치 후 mySQL과 연결하고, 데이터베이스를 어떻게 만들지만 생각했다.
sequelize, sequelize-cli, mysql2 패키지를 설치했고, express 서버와 연결만 해줬다.
const Sequelize = require('sequelize');
const env = process.env.NODE_ENV || 'development';
const config = require('../config/config')[env];
const db = {};
const sequelize = new Sequelize(config.database, config.username, config.password, config);
db.sequelize = sequelize;
module.exports = db;
models/index.js 이다.
sequelize.sync({ force: false })
.then (() => {
console.log('데이터베이스 연결 성공');
})
.catch((err) => {
console.error(err);
});
app.js이다.
테이블은 다음과 같이 구성할 예정이다.
maker: 닉네임
solver: 닉네임, url_id, wordList
url: maker_id, url, correct_word
maker - url : 1대1
url - solver: 1대N
요청은 다음과 같이 구성했다.
MakeBoard: 닉네임 입력하면 중복 검증 후 등록하고, 정답 단어 입력하면 url 생성하면서 등록
SolverBoard: 닉네임 입력하면 증복 검증 후 받고, wordList 입력할 때마다 등록, url에 종속됨
LoadBoard: 닉네임 입력하면 maker 테이블에서 해당 닉네임 찾고, 해당 maker_id에 해당하는 url 찾고, 해당 url_id에 해당하는 solver들 모두 load
급하게 끝낸 감이 없지 않아 있는데, 의외로 데이터베이스를 구성하기가 어려웠다. 1대1인지, 1대N인지, N대M인지, 어떤 부분을 테이블로 구성하고 어떤 부분을 테이블 안의 칼럼으로 구성해야되는 지 생각하는게 간단할 줄 알았는데 그렇지 않았다. 일단 신중하게 생각해서 정한 것이긴 한데, 나중에 바꿔야될 상황이 올 수도 있을 것 같다. 은근 어려운 것 같다. 내일도 시간이 많이 없는 관계로 테이블 구성, 빨리하면 sequelize 모델 구성까지 해보고 싶다.