단기집중과정 101
10 모듈
5 주

데이터 모델 디자이너

복사하려면 클릭

데이터 모델 디자이너를 이용한 데이터베이스 생성


데이터베이스 디자인

이제 자신의 데이터베이스를 디자인할 때입니다. 이렇게 하려면 왼쪽 패널의 Database 탭으로 이동합니다.

Data models designer

데이터 모델

데이터베이스의 데이터는 특수 테이블(모델)의 형태로 저장됩니다. 그리고 이미 하나의 모델이 있음을 알 수 있습니다. 권한 부여 모듈의 일부이며 기본적으로 모든 프로젝트에 포함됩니다. 덕분에 애플리케이션의 새로운 사용자가 생성되고 기존 사용자가 관리됩니다. 그러나 우리는 지금 연구에 머무르지 않고 우리 자신의 모델을 만들 것입니다.

지도 서비스를 개발 중이라고 상상해보십시오. 국가에 대한 정보가 포함된 모델을 만들어 보겠습니다. 그것을 만들려면 캔버스의 빈 영역을 마우스 오른쪽 버튼으로 클릭하고 Create empty model.

생성하려면 모델 이름만 지정하면 됩니다. 과정의 추가 모듈에서 끝점 및 사용자 인터페이스 요소의 자동 생성을 다룰 것입니다.

Create new model

모델 필드

생성 직후 모델에는 이미 4개의 필드가 포함되어 있습니다. 이들은 시스템 필드로, 이 필드의 존재는 모델의 초기 생성 및 추가 사용을 크게 단순화합니다.

ID (integer) - 고유 식별자, 기본 키. 테이블의 각 새 항목에 대해 자동으로 생성되며 중복 항목이 없도록 하기 위한 것입니다. 테이블의 레코드를 고유하게 식별할 수 있는 것은 ID입니다. 값은 1에서 시작하여 새 항목마다 자동으로 1씩 증가합니다.

CreatedAt (datetime) - 테이블에서 레코드가 생성된 시간입니다.

UpdatedAt (datetime) - 항목이 마지막으로 수정된 시간입니다.

DeletedAt (datetime) - 항목이 삭제된 시간입니다. 물론 소프트 제거를 사용한 경우에만 가능합니다. 즉, 레코드가 삭제된 것으로 표시되고 해당 레코드에 대한 액세스 요청에 의해 필터링되지만 동시에 물리적으로 테이블에 남아 있는 경우 이러한 삭제가 발생합니다. 이는 실제로 데이터를 완전히 삭제하는 대량 삭제와 다릅니다.

시스템 필드 외에도 생성된 모델에 사용자 정의 필드를 추가하는 것이 현명할 것입니다. 국가의 이름과 그에 대한 정보가 포함된 설명을 보고 싶다고 가정합니다.

필드 유형을 선택하는 것은 문제가 되지 않습니다. String 은 이름에 적합하고 Text 는 정보 설명에 적합합니다.

Add model field

또한 4개의 추가 스위치를 사용할 수 있습니다.

Multiple values ​​(Array) - 단일 항목 대신 배열을 사용합니다.

Not null - 지정된 필드는 비워둘 수 없으며 항상 데이터를 포함해야 합니다.

Unique - 필드 값은 고유해야 합니다. 이 모델에서는 이 필드 값이 동일한 두 개의 레코드가 있을 수 없습니다.

Index - 검색 속도를 높이기 위해 이 필드에 대해 특수 색인이 생성됨을 나타냅니다.

일반적으로 정말 필요한 경우에만 표시를 하는 것이 옳습니다. 예를 들어 이름이 없는 국가 또는 이름이 같은 두 국가가 있을 수 없다고 가정하고 국가 이름에 대해 Not nullUnique 를 표시할 수 있습니다. 다만, 데이터베이스 자체에 제한을 두지 않고 애플리케이션의 로직을 생성하는 단계에서 이를 제어하는 ​​것이 좋다.

마찬가지로 도시에 대한 정보가 포함된 테이블을 만듭니다. 어떤 데이터 필드를 포함할 수 있는지, 이러한 필드의 유형을 생각하십시오.

데이터 모델 관계

데이터베이스의 데이터는 분산된 테이블 형태로 자체적으로 존재하지 않습니다. 그들은 특정 방식으로 서로 관련되어 있습니다. 데이터 모델 개발의 핵심은 이러한 관계를 정의하고 관계를 구축하는 것입니다.

이러한 링크를 설정하려면 한 모델의 경계에서 다른 모델까지 마우스로 선을 그려야 합니다. 이 예에서 우리는 각 도시가 특정 국가에 있다는 것을 확실히 알고 있으므로 국가에서 도시로의 링크를 생성할 수 있습니다.

Data models relations

연결에는 3가지 유형이 있습니다.

일대일 (has one) . 테이블의 각 레코드는 연결된 테이블의 하나의 레코드에 매핑됩니다(역으로도 마찬가지입니다). 간단한 예는 사람과 여권입니다. 우리는 항상 이 연결이 고유하다는 것을 확신할 수 있습니다. 여권에는 한 명의 소유자만 있을 수 있으며 각 사람은 유효한 여권을 하나만 가질 수 있습니다.

일대다 (has many) . 한 테이블의 각 레코드는 다른 테이블의 많은 레코드를 가질 수 있습니다. 우리 데이터베이스도 비슷한 예입니다. 국가에는 여러 도시가 있을 수 있지만 각 도시는 한 국가에만 속할 수 있습니다. 이것이 우리가 만들 연결입니다.

다대다 . 한 테이블의 여러 레코드가 다른 테이블의 여러 레코드에 해당할 수 있는 관계입니다. 간단한 예가 교사와 학생의 관계입니다. 각 학생이 여러 다른 교사로부터 배울 수 있는 것처럼 각 교사는 많은 학생을 가르칠 수 있습니다.

Was this article helpful?
아직도 답을 찾고 계십니까?