하나 이상의 CREATE TABLE 문을 붙여넣으면 이 도구가 스키마를 그립니다: 모든 테이블이 개체가 되고 열이 PK / FK가 붙은 속성이 되며 FOREIGN KEY 제약이 관계 선이 됩니다. 스키마가 외래 키를 선언하지 않으면 customer_id 같은 열이 유지하거나 버릴 수 있는 추론된 관계로 제안됩니다. Mermaid erDiagram 소스를 복사하거나 다이어그램을 SVG / PNG로 내보내세요. 모든 것이 로컬에서 돕니다 — 스키마는 결코 브라우저를 떠나지 않습니다.
ERD란? ERD는 개체 관계 다이어그램(Entity Relationship Diagram)의 약자입니다 — 데이터베이스가 어떻게 조직되었는지의 그림. 세 종류의 모양으로 그려집니다: 개체(테이블, 상자로 그림), 속성(상자 안에 나열되는 열), 관계(두 상자를 잇는 선). 이 기법은 Peter Chen의 1976년 개체-관계 모델에서 왔으며 DDL을 쓰기 전에 스키마를 스케치하는 여전히 보통의 방법입니다. 좋은 ERD는 어떤 테이블이 존재하는지, 각 행이 무엇을 저장하는지, 한 테이블의 행이 다른 테이블의 행을 어떻게 가리키는지 한눈에 보여줍니다 — SQL을 읽고 싶지 않은 사람도 읽을 수 있습니다.
Entity — one thing the system keeps data about, such as a customer, an order or a product. In a relational database each entity becomes one table.
Attribute — one fact recorded for every row of an entity, such as a name, a price or a date. Each attribute becomes one column.
Relationship — an association between two entities, implemented by a foreign key: the child table stores the parent’s key, and the diagram turns that column into a line.
PK / FK — a primary key (PK) identifies each row of a table uniquely; a foreign key (FK) holds the primary key of another table and is what a relationship line represents.
카디널리티 — 선의 각 끝에 몇 개의 행이 허용되는지: 일대일, 일대다, 다대다. 이 페이지는 Mermaid가 쓰는 까마귀 발 표기법을 그립니다(4단계의 범례 참조).
표기법: Chen 표기법은 관계에 마름모, 속성에 타원을 쓰고 까마귀 발 표기법(여기 그리는 것)은 개체를 속성이 안에 나열된 하나의 상자로 압축하며 선의 다 쪽 끝을 세 갈래 "까마귀 발"으로 표시합니다. UML 클래스 다이어그램은 같은 구조를 클래스, 연산, 다중성으로 기술합니다. 셋 모두 스키마에 대해 같은 것을 말합니다 — 기호만 다를 뿐.
1 — 테이블 스키마 (DDL)
2 — 개체
그리기
테이블
열
관계
속성
아직 파싱된 테이블이 없습니다.
3 — 관계
사용
자식 (다)
Actions
부모 (일)
출처
Actions
아직 관계가 없습니다.
관계를 직접 추가:
→
4 — 다이어그램
Mermaid erDiagram 소스
관계 읽는 법:자식 테이블의 외래 키는 PARENT ||--o{ CHILD를 만듭니다. 개체와 속성은 DDL 이름을 유지하며 Mermaid가 그릴 수 없는 문자(공백, 대시)는 밑줄로 표시됩니다. 타입은 기초 단어로 단순화됩니다(DECIMAL(10,2) → DECIMAL). 다이어그램 문법이 매개변수를 받지 않기 때문입니다.
카디널리티 기호 (까마귀 발): 개체 옆의 표시가 그 끝에 몇 개의 행이 설 수 있는지 말합니다 — || 정확히 하나, o| 0 또는 1, o{ 0 또는 다수, |{ 1 또는 다수. 그래서 PARENT ||--o{ CHILD는 "하나의 부모 행이 0, 1 또는 다수의 자식 행에게 참조될 수 있고 모든 자식 행은 정확히 하나의 부모를 가리킨다"로 읽힙니다 — 고전적 일대다 연결.
Many-to-many is never a single line: a product can appear in many orders and an order can
hold many products, so the schema stores a join table (order_items) whose two foreign keys
become two one-to-many lines. Read through that middle box and the many-to-many is there.