ORM이 뭐예요?

2837 단어

ORM은 완일봉 블로그에서 나온 거예요.


무엇


표면적인 의미


실제로는 줄임말로 대상-관계영사의 줄임말을 나타낸다
  • O->Object
  • RM->Relational(관계) Mapping(매핑)
  • 어떤 사상을 대표하는가


    실제로는 데이터베이스를 대상으로 비추는 생각이다
  • 데이터베이스 테이블(table)-->클래스(class)
  • 레코드(record, 줄 데이터) --> 대상(object)
  • 필드(field) --> 대상의 속성(attribute)
  • 예를 들어 검색어구SELECT id, first_name, last_name, phone, birth_date, sex FROM persons WHERE id = 10코드
    res = db.     (sql);
    name = res[0]["FIRST_NAME"];
    

    그러면 ORM 쓰는 법은...
    p = Person.get(10);
    name = p.first_name;
    

    이러한 장점은 데이터베이스 밑바닥을 이해할 필요가 없다는 것이다. 왜냐하면 그것은 접촉할 필요가 없기 때문이다SQL 문장
    그래서 ORM 이런 장점이 있어요.
  • ORM 생태가 비교적 완비되어 있고 많은 도구 지원이 있다
  • 타고난 것MVC,ORM타고난 것Model
  • 안 써도 돼요SQL.

  • 그것의 단점은 다음과 같다.
  • 복잡한 조회는 어렵고 성능도 떨어진다
  • 학습 비용이 비교적 높다
  • 접촉이 필요하지 않기 때문SQL특별한 SQL
  • 명명 규칙


    현재 공인된 가장 규범적인 것은 루비 언어의 Active Record이다.Active Record는 객체 및 데이터베이스 테이블의 매핑에 대해 몇 가지 명명 제한이 있습니다.
    (1) 하나의 종류가 하나의 표에 대응한다.클래스 이름은 단수이고 알파벳은 대문자이다.표명은 복수이고 모두 소문자이다.예를 들어 표books 대응류Book.
    (2) 이름이 불규칙한 복수라면 클래스명은 영어 습관에 따라 명명한다. 예를 들어 표mice 대응류Mouse, 표people 대응류Person.
    (3) 이름이 여러 단어를 포함한다면 클래스명은 이니셜이 모두 대문자로 된 낙타 맞춤법을 사용하고 테이블 이름은 밑줄로 구분된 소문자를 사용한다.예를 들어 표book_clubs대응류BookClub,표line_items대응류LineItem.
    (4) 모든 테이블에는 키 필드가 있어야 한다. 통상적으로 id라는 정수 필드이다.외키 필드 이름은 단수로 약정된 테이블 이름 + 밑줄 + id입니다. 예를 들어 item_id는 이 필드가 대응하는 items 테이블의 id 필드를 나타냅니다.

    샘플 라이브러리 OpenRecord

    OpenRecord는 모방Active Record으로 이식JavaScript되었고 경량급으로 이루어져 학습 원가가 비교적 낮다.예시 라이브러리를 썼습니다. 로컬로 복제하십시오.

    연결 데이터베이스


    ORM을 사용하는 첫 번째 단계는 데이터베이스에 연결하는 방법을 알려줘야 한다는 것이다. (전체 코드는 여기 있다.)
    // demo01.js
    const Store = require('openrecord/store/sqlite3');
    
    const store = new Store({
      type: 'sqlite3',
      file: './db/sample.db',
      autoLoad: true,
    });
    
    await store.connect();
    

    연결이 성공한 후에 데이터베이스를 조작할 수 있다.

    Model


    할 말이 없다. 단지 ORM의 프레임워크가 시계를 클래스 대상으로 바꿀 것이다

    CRUD 작업


    더 이상 할 말도 없고, 첨삭 · 수정은 모두 조회 문구에서 호출 방법으로 바뀌었다

    관계


    표와 표 사이의 관계(relation)는 세 가지로 나뉜다.
  • 일대일(one-to-one): 한 대상과 다른 대상은 일일이 대응하는 관계이다. 예를 들어 한 학생이 한 반에만 있을 수 있다.
  • 일대다(one-to-many): 한 대상은 다른 대상에 속할 수 있는 여러 가지 실례, 예를 들어 한 음반에 여러 곡이 포함된다.
  • 다대다(many-to-many): 두 대상은 서로'일대다'관계이다. 예를 들어 한 음반에 여러 곡이 포함되고 한 곡은 여러 음반에 속할 수 있다.

  • 이 정도면 충분하다는 걸 알게 됐어요.

    좋은 웹페이지 즐겨찾기