응용 프로그램용 데이터베이스 설계는 테이블 간의 관계를 생성하지 않고는 거의 완료되지 않습니다. AppMaster 데이터베이스 편집기를 사용하면 한 번의 간단한 이동으로 이러한 관계를 만들 수 있습니다. 테이블 사이에 연결선을 그린 다음 관계 유형(일대일, 일대다, 다대다)과 필요한 경우 필드 이름을 선택하기만 하면 됩니다. 하지만 테이블이 자신을 참조해야 한다면 어떻게 될까요?
특정 기록 로그를 유지해야 하는 상황을 분석해 봅시다. 동시에 레코드가 엄격하게 체인으로 생성되는 방식으로 구성됩니다. 각 항목은 이전 및 후속 항목에 연결되어야 합니다(물론 맨 처음 및 마지막 항목 제외). 따라서 각 개별 레코드에 대해 전체 체인을 추적할 수 있으며 시스템은 무단 변경에 대해 추가 보호를 받습니다.
데이터베이스 설계
먼저 데이터베이스 디자이너에서 모델 자체를 생성해야 합니다. 이름을 Journal 로 지정하고 하나의 텍스트 필드인 record 를 추가합니다.
다음 단계는 연결을 만드는 것입니다. 이렇게 하려면 캔버스의 아무 곳이나 마우스 오른쪽 버튼으로 클릭하고 Create relation 를 선택합니다.
다음 단계는 연결을 설정하는 것입니다. 이렇게 하려면 Source 및 Target (이 경우 Journal )과 동일한 모델을 선택하고 필드 이름( next 및 previous ) 및 연결 유형( has_one )을 설정해야 합니다.
자체 참조 테이블 설정이 완료되었습니다. 프런트 엔드 디자인 및 비즈니스 프로세스 생성을 시작할 수 있습니다.
비즈니스 프로세스 생성
저널에 새 항목을 추가하는 백엔드 비즈니스 프로세스를 생성해 보겠습니다. 새 항목의 텍스트를 입력 매개변수로 수신합니다. 이렇게 하면 데이터베이스에서 최신 항목을 검색하여 새 항목과 연결합니다. 검색을 위해 _Limit = 1 을 설정할 수 있습니다(마지막 레코드가 하나만 필요하기 때문). 기본적으로 레코드는 ID별로 정렬되고 데이터베이스에 추가된 순서대로 발행되므로 충분합니다. 마지막 기록.
검색 결과는 하나의 요소로 구성된 배열입니다. index 0 인 Array Element 블록을 사용하여 추출하고 새 저널 항목( Make Journal )을 형성해야 합니다. 마지막 단계는 데이터베이스( DB: Create Journal )에 쓰고 비즈니스 프로세스를 완료하는 것입니다.
이 비즈니스 프로세스는 기본 끝점에서 새 데이터베이스 레코드를 만드는 데 사용할 수 있습니다.
프런트 엔드 디자인
웹 애플리케이션의 프런트 엔드의 경우 페이지에 세 가지 요소를 추가하는 것으로 충분합니다.
- 새 항목의 내용을 입력하기 위한 텍스트 필드
- 항목을 추가하는 버튼
- 모든 항목을 표시하는 테이블입니다.
"ADD Journal Record" 버튼의 경우 간단한 비즈니스 프로세스도 생성해야 합니다. 버튼을 클릭하면 입력 필드의 텍스트가 끝점으로 전송되어 새 레코드를 생성하고 다른 버튼을 클릭하여 마지막 작업으로 테이블의 내용을 업데이트해야 합니다.
테이블 자체의 경우 비즈니스 프로세스를 설정하는 것도 가치가 있지만 이 단원에서는 이에 대해 다루지 않습니다. 필요한 모든 정보는 테이블 설정에 대한 강의에서 찾을 수 있습니다. 데이터를 가져올 때 관련 테이블에서 데이터를 가져오려면 _with 매개변수를 지정해야 한다는 점은 주목할 가치가 있습니다(우리의 경우 테이블이 자체적으로 관련되어 있음에도 불구하고).
애플리케이션을 게시하고 몇 가지 항목을 추가하고 모든 것이 올바르게 작동하는지 확인할 수 있습니다. 각 항목은 실제로 동일한 테이블의 항목과 관련이 있습니다. 예를 들어 ID가 3인 항목의 경우 이전 항목(ID 2)과 다음 항목(ID 4)에 대한 링크가 있습니다.