각 테이블에 대한 클래스를 만드는 것이 좋을까요? 그렇다면 에 대한 모범 사례는 무엇입니까? orm이없는 데이터베이스 등의 클래스를 다시로드하고 저장 하시겠습니까?
ORM을 사용 중입니다. 관계형 테이블에 오브젝트를 맵핑 중입니다. 사전 작성된 라이브러리를 사용하든 사용하지 않든 귀하의 전화입니다. 그렇지 않으면 기존 ORM의 모든 종소리와 휘파람을 사용하지 않아도된다.
이렇게하는 가장 일반적인 두 가지 방법은 ActiveRecord 패턴과 Data Mapper 패턴입니다. 각각에는 그것의 이점과 불리가있다.
ActiveRecord 패턴을 사용하면 속성이 테이블 열을 정의하는 클래스를 정의 할 수 있습니다. 이 클래스의 각 인스턴스는 데이터베이스의 행에 해당하며 새 인스턴스를 만들고 저장하여 데이터베이스에 새 행을 만듭니다. 여기에 대한 자세한 내용은 여기를 참조하십시오. http://en.wikipedia.org/wiki/Active_record_pattern
데이터 매퍼 패턴에서 각 테이블에 대한 테이블 개체를 정의하고 기존 클래스에 테이블의 열을 할당하는 매퍼 함수를 작성합니다. SQLAlchemy는 기본적으로이 패턴을 사용합니다 (ActiveRecord 유형 확장 모듈이 있지만 SQLAlchemy의 기능을 다른 인터페이스에 적용합니다.)이 패턴에 대한 간단한 소개는 SQLAlchemy의 설명서 http://www.sqlalchemy.org/docs/05/ormtutorial.html에서 찾을 수 있습니다. 섹션 "표, 클래스 및 매퍼 모두 한 번에 선언적으로 만들기"라는 절에서 SQLAlchemy를 사용하여 ActiveRecord에 대해 설명합니다.
ActiveRecord 패턴은 설정하기가 쉽고 작업하기가 쉽고 데이터베이스를 명확하게 나타내는 클래스를 제공하므로 가독성 측면에서 이점이 있습니다. 부수적 인 이점으로, ActiveRecord 클래스의 선언적 성격은 데이터베이스 스키마에 대한 명확하고 명확한 문서화의 역할을합니다.
데이터 매퍼 패턴을 사용하면 데이터가 클래스에 매핑되는 방식을 훨씬 유연하게 지정할 수 있으므로 테이블과 클래스 간의 일대일 관계에 더 많이 묶이지 않아도됩니다. 또한 지속성 계층을 비즈니스 코드와 분리합니다. 즉, 필요할 경우 나중에 다른 지속성 메커니즘을 스왑 할 수 있습니다. 또한 데이터베이스를 백업 할 필요없이 클래스를보다 쉽게 테스트 할 수 있음을 의미합니다.
SQLAlchemy의 매퍼 구성에 대한 자세한 내용은 http://www.sqlalchemy.org/docs/05/mappers.html을 확인하십시오. SQLAlchemy와 같은 라이브러리를 사용할 계획이 없다고해도, 문서는 클래스를 데이터베이스 테이블에 매핑 할 때 고려해야 할 몇 가지 옵션을 보여줍니다.
감사합니다. 나는 그것을 줄 것이다! 주의 사항 : – zSynopsis