이전에는 ERD 를 대충 데이터 구조를 그려놓은 것? 이라고만 이해하고 완성된 것들만 접했었는데 플러스 주차 팀 프로젝트가 시작되고 나서 처음으로 제대로 찾아보고 팀원과 함께 만들며 공부하게 되었다.
ERD DIAGRAM : Entity Relationship Diagram의 약자로, Entity (개체)와 Relationship (관계)를 중점적으로 표시하는 데이터베이스 구조를 한 눈에 알아보기 위해 그려놓는 다이어그램이다.
- API 명세로 어떤 기능을 구현해야겠다고 감이 잡히면 이제 유저들의 데이터를 저장할 데이터베이스 스키마를 설계해야하고 이는 ERD로 표현되어야 한다.
- ERD를 사용하면 팀원들이 서비스의 데이터베이스의 구조를 쉽게 이해하고 더 효과적인 데이터베이스 설계를 할 수 있다.
■ ERD 의 구성 요소
☀︎ Entity (개체)
정의 가능한 사물 또는 개념
서비스에서 필요로 하는 데이터를 담을 개체를 식별하도록 한다.
(ex) 사용자, 게시물, 댓글 등
☀︎ Attribute (속성)
Entity를 구성하고 있는 구성 요소
Attribute (속성) 이름은 소문자로 작게 표기하며 Entity 이름과 Attribute 이름이 중복되면 안됨
(ex) 사용자 개체는 이름, 로그인 아이디, 비밀번호 등의 속성을 가짐
☀︎ Relationship (관계)
Entity 간의 관계를 의미하며, 두 Entity 간에 선을 긋고 관계 명칭을 기록
(ex) 사용자와 게시물의 관계 : "작성하다"
■ 이번 팀 프로젝트의 ERD 살펴보기
(1) 개체명 : user
(2) 개체 속성
- userid / uuid type
- email / text type
- password / text type
- nickname / text type
☀︎ userid 속성 옆에 있는 🔑 열쇠 모양은 기본 키인 Primary Key 로,
개체 인스턴스를 식별할 수 있는 목적으로 사용되며 한 개체 별로 하나씩 만 있어야 한다.
* Primary key = Unique key(유일 값) + Not Null(빈 값이 아닌 것)
* 개체 인스턴스(Entity Instance) : 개체 내 실체
☀︎ user 개체는 N개의 articles 개체와, articles 개체는 1개의 user 개체와 관계를 맺는다. ( user : articles = 1 : N )
개체는 테이블을 대변하고, 개체의 속성은 테이블을 대변한다. 그리고 각 행마다 개체 인스턴스가 추가된다.
'TIL' 카테고리의 다른 글
supabase response data type (0) | 2024.10.14 |
---|---|
TypeError: Cannot read properties of undefined (reading 'Geocoder') (0) | 2024.10.11 |
type 과 interface 의 차이점 (0) | 2024.10.09 |
fetch json() 메서드 적용이 안되는 문제 (4) | 2024.10.08 |
typescript-eslint/no-unused-vars (0) | 2024.10.07 |