ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Node.js] 4일차
    교육 2019. 9. 11. 01:46

    수업 내용 정리


    - ORM

    - 모델 간의 관계

     

     

    ORM (Object Relational Mapping)


    - 객체 지향 프로그래밍 언어와 관계형 DB 간의 매핑을 지원하는 프로그래밍 기술

    Object-relational mapping (ORM) in computer science is a programming technique for converting data.........~

    - 객체와 관계형 DB의 테이블 간에 불일치를 해결해줌 (중간 다리 역할)

     

     

    Sequelize


    - 프로미스 기반 Node.js ORM 라이브러리

    Postgres, MySQL, MariaDB, SQLite and Microsoft SQL Server.

     

     

    모델 관계 설정


    - associate안에 적어줌

        let Products = sequelize.define('Products', {
            id: {type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true},
            name: {type: DataTypes.STRING},
            thumbnail: {type: DataTypes.STRING},
            price: {type: DataTypes.INTEGER},
            description: {type: DataTypes.TEXT}
        }, { // 옵션 설정
            timestamps: true,
            underscored: true
        });
    
        // Product 모델 관계도
        Products.associate = (models) => {
    
            // Memo 모델에 외부키를 둠
            // onDelete 옵션이 'CASCADE'인 경우 제품이 삭제되면 자신의 메모들도 전부 삭제됨
            Products.hasMany(models.ProductsMemo, {
                // as에 따라 함수명이 변경됨 (as 중요함)
                as: 'Memo',
                foreignKey: 'product_id',
                sourceKey: 'id',
                onDelete: 'CASCADE'
            });
    
            Products.belongsTo(models.User, {
                as: 'Owner',
                foreignKey: 'user_id',
                targetKey: 'id'
            });
        };

     

     

    참고


    https://github.com/sequelize/sequelize#documentation

    '교육' 카테고리의 다른 글

    [Node.js] 10일차  (0) 2019.09.25
    [Node.js] 8일차  (2) 2019.09.18
    [Node.js] 3일차  (0) 2019.08.28
    [Node.js] 2일차  (0) 2019.08.23
    [Node.js] 1일차  (0) 2019.08.21

    댓글

Designed by Tistory.