두 가지의 차이점은 무엇이며 각각 어떤 시나리오에 사용해야 하나요?
두 가지의 차이점은 무엇이며 각각 어떤 시나리오에 사용해야 하나요?
작업이 간단하고 직관적이며 유지 관리가 쉽기 때문에 모든 작업은 ORM을 통해 수행됩니다. 성능은 낮지만 너무 치명적이지는 않습니다. 실제 동시성 최적화가 있으면 DB를 사용해도 문제가 해결되지 않을 수 있습니다. ORM의 각 메소드의 의미를 이해해야 합니다. 그렇지 않으면 실수로 더 많은 SQL이 발생할 수 있습니다. 예를 들어 목록을 가져올 때 관계에만 의존하지 마십시오. 공동 테이블.
저는 laravel을 사용해 본 적이 없지만, 제가 이해한 바는 같습니다. DB는 SQL을 직접 작성하여 데이터베이스를 운영하는 반면, ORM은 객체를 사용하여 데이터베이스를 운영합니다.
SQL이나 ORM을 사용하여 데이터베이스를 운영할 수 있습니다. SQL은 관계형 데이터베이스의 쿼리 언어이며 관계형 데이터베이스는 SQL을 이해하고 사용하는 것이 필수입니다. 그러나 현재 프로그램 개발에서는 OOP 사고가 더 인간적인 표현력을 갖고 있는 반면 SQL은 OOP만큼 표현력이 부족하기 때문에 OOP 사고를 선호합니다. 표현력이 뛰어난 언어는 인간이 코드 논리를 구성하는 데 더 도움이 됩니다. 표현력이 뛰어난 언어는 전체 개발 효율성을 질적으로 최적화하고, 코드는 더욱 견고해지며, 버그도 줄어듭니다.
SQL의 큰 부분을 디버깅하는 것은 ORM을 사용하여 디버깅하는 것보다 쉽지 않으며 ORM은 일반적으로 서로 다른 데이터베이스 간에 전환할 수 있습니다. 이것이 ORM의 장점입니다. 견고한 시스템은 실수로 인한 낮은 수준의 오류를 효과적으로 방지할 수 있는 ORM을 사용해야 합니다. 그러나 ORM 코드는 통합되지 않았습니다. laravel의 ORM에 익숙하므로 다른 프레임워크에서 직접 사용할 수 없습니다.
업계에 오래 종사하지 않았고 초보자라면 SQL을 최대한 많이 사용하세요. SQL은 필연적으로 사용하기 때문이고, SQL에 대한 깊은 이해가 필수이기 때문입니다. 실천으로 여겨진다. 이미 경험이 있다고 생각되면 ORM을 사용하면 오류율을 줄일 수 있습니다.
ORM 성능이 낮기 때문에 데이터베이스를 직접 운영하려면 DB Facade를 사용하는 것이 좋습니다.
데이터 쿼리의 경우 ORM은 DB보다 나쁘지 않습니다. 예를 들어 가장 기본적인 SQL 분할 문 최적화를 사용합니다. ORM 손실은 코드 수준에서만 발생하므로 더 이상 문제가 되지 않습니다.
ORM은 일반에서 중간 정도의 복잡성을 갖는 쿼리에 적합하며 다양한 모델 작업에도 적합합니다. 예를 들어 관계형 대상이 있는 경우target()->delete() 등을 직접 사용할 수 있습니다. 관계형 데이터 작업을 수행합니다.
ORM의 소프트 삭제, 시간 필드의 자동 업데이트, 필드 보호 및 필드 유형 변환은 모두 일부 표준화되고 체계적인 프로젝트에서 이점을 제공합니다.
또한 DB 시나리오: 좀 더 복잡한 쿼리문, 트랜잭션 작업 등을 DB에서 완료해야 합니다.
DB는 주로 쿼리 빌더(SQLBuilder)입니다. 데이터베이스에서 쿼리하기 위해 입력 매개변수를 SQL 문으로 변환하는 데 도움이 됩니다. 이는 SQL 문을 직접 작성하는 것과 본질적으로 동일합니다.
ORM은 데이터베이스의 데이터를 객체와 컬렉션 객체로 매핑하는 객체 관계형 매퍼 도구입니다. 기본 데이터를 건드릴 필요가 없으며 매핑된 객체를 직접 호출하여 개발할 수 있습니다.
DB는 고성능 요구사항이나 간단한 비즈니스 로직이 있는 프로젝트에 적합하고, ORM은 복잡한 비즈니스 로직이 있는 프로젝트에 적합합니다.