forked from Exagonal-Study/est-delivery
-
Notifications
You must be signed in to change notification settings - Fork 0
3. 데이터 모델링
이건창 edited this page May 11, 2024
·
3 revisions
객체 모델링과 데이터 모델링의 차이점은 어디에 저장이 되는가이다. 객체는 메모리에 적재되어 생성 소멸에 자유롭지만 데이터는 영속화되어 고정된 크기를 영구적으로 차지하게 되어 부담으로 이어지게 된다. 이런 문제를 해결하기 위해 정규화를 통해 인지 부조화가 없을 정도의 중복 제거를 진행했다.
객체를 기반으로 중복된 데이터를 제거하고 연관된 데이터끼리 묶은 다음 관리하기 어려운 다대다를 풀어줬다. 다개다를 풀어주면서 식별자를 노출할까 고민했지만, 노출하지 않았다. 식별자를 가지고 수행할 일이 없다고 생각했다.
---
title: 이달의 민족
---
erDiagram
royal_member {
long shop_id
long member_id
}
shop {
long id pk
string name
long boss_id
}
member {
long id pk
string name
}
published_coupon_book {
long shop_id
long coupon_id
}
handout_coupon_book {
long shop_id
long coupon_id
}
event_coupon_book {
long shop_id
long coupon_id
long event_id
}
coupon {
long id pk
long shop_id
string name
string description
string type
int amount
}
members_coupon_book {
long member_id
long coupon_id
string status
}
royal_member }o--|| member : contain
royal_member }o--|| shop : manage
members_coupon_book ||--o{ coupon : contains
members_coupon_book ||--o{ member : have
handout_coupon_book ||--o{ shop : have
handout_coupon_book ||--o{ coupon : contains
published_coupon_book ||--o{ shop : have
published_coupon_book ||--o{ coupon : contains
event_coupon_book ||--o{ shop : have
event_coupon_book ||--o{ coupon : contains
시작은 헥사고날 아키텍처이지만 객체 모델링으로 끝나버렸다. 헥사고날 아키텍처를 위한 초석이라 생각해주면 좋겠다. 다음에는 패키지 구조와 함께 어떻게 격리를 진행했는지, 영속성 계층을 어떻게 관리 할 수 있을지에 대한 고민을 해보겠다. 그럼 안녕.