MVC, ORM
MVC
ソフトウェア設計に関連する設計モデルは、ソフトウェアエンジニアリングでよく使われる設計モデルである.
MVC
MVCは,モデル,ビュー,コントローラを3つの役割に分けて,コードメンテナンスの開発を容易にする方法である.
MVCモードの流れは以下のように簡単に説明される.
Model
View
Controller
MVC優勢
MVC欠点
サービス機能が多ければ多いほど、コントローラの作業が重くなり、コントローラはビューとモデルに依存します.したがって,コードの修正が困難であり,多様な副作用が生じる可能性がある.
ORM
Object-Relational Mapping
JavaScriptのオブジェクトとリレーショナル・データベースのエンティティ間の橋渡しロール
なぜORMを書くのですか?
Sequelize
ORMサンプルコード
var Sequelize = require('sequelize');
var db = new Sequelize('chatter','root',''); //(db이름, user, password)
var User = db.define('User', { //define 메소드로 스키마를 작성하는 과정
username: Sequelize.STRING
//mysql에서는 varchar(255)로 썼는데, rdbms 사이의 호환성을 유지시키기 위해 sequelize에서 타입을 만든 것
//sequelize에서 자동으로 id(pk), created_at, update_at 등을 자동으로 생성
});
var Message = db.define('Message', {
userid: Sequelize.INTEGER,
text: Sequelize.STRING,
roomname: Sequelize.STRING
});
User.sync()
.then(function(){
return User.create({ username : 'Jean Valjean' });
//객체를 사용해 새로운 레코드 생성하는 과정. SQL에서는 INSERT INTO를 사용했었다
})
.then(function(){
return User.findAll({ where : { username : 'Jean Valjean' } });
})
.then(function(users){
users.forEach(function(user){
console.log(user.username + ' exists');
});
db.close();
})
.catch(function(err){
console.err(err);
db.close();
});
関連付け:結合テーブルの実装
sequelizeでは、1:1、1:N、N:Mの関係は、以下の4種類の組み合わせで表すことができる
Transaction
たとえば、「送金」のために、次の3つのプロセスが発生します.
1.通帳の照会
2.通帳振込
3.他の通帳で送金する
もし、送金したが、データベースに問題があり、他の通帳で送金できない場合は、「ロールバック」する必要があります.
このクエリは、問題が発生した場合はロールバックされ、成功した場合はTransactionとしてコミットされます.
reference
Reference
この問題について(MVC, ORM), 我々は、より多くの情報をここで見つけました https://velog.io/@kaitlin_k/ORMテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol