nodejs를 이용하여 백엔드를 처음 접하면서 ORM에 대해 처음 알게 되었다.
ORM(Object-Relational Mapping)은 객체지향 패러다임을 활용하여 관계형 데이터베이스(RDB)의 데이터를 조작하게 하는 기술
우리가 mariaDB를 사용하게 되면서 자연스럽게 사용을 하는 것 같다.
post 쪽을 맞게 되었으니 post 테이블을 만들기로 하였는데, 관계형성이 굉장히 어렵다..
module.exports = (sequelize, DataTypes) => {
const Posts = sequelize.define(
"Posts",
{
user_id: {
// column 속성들
type: DataTypes.STRING(30),
allowNull: true,
unique: false,
comment: "제목",
},
title: {
// column 속성들
type: DataTypes.STRING(30),
allowNull: true,
unique: false,
comment: "제목",
},
contents: {
// column 속성들
type: DataTypes.STRING(100),
allowNull: true,
unique: false,
comment: "게시물",
}
},
{
charset: "utf8", // 한국어 설정
collate: "utf8_general_ci", // 한국어 설정
tableName: "Post", // 테이블 이름
createAt: true, // createAt & updateAt 활성화
paranoid: false, // 테이블을 삭제할 수 없게되며, 삭제요청시 deleteType이 수정된다.
}
);
Posts.associate = function (models) {
// 관계형성 부분
// Posts.belongsTo(models.Users, {foreignKey : "user_id", sourceKey:"id"})
// Posts.belongToMany(models.PostLikes, {foreignKey : "post_id", sourceKey:"id"});
};
return Posts;
};