- Database์ ์ ์ฌํ๊ฒ ๋์จ๋ค. ERD(DB)์ ๊ฐ์ด ์์์ฑ์ ๊ฐ๋ ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค.
Class Diagram์์์ ๋ฉ์๋๊ฐ ๋ฌธ์์ธ ๊ฒ.
concept -> ์ฐ๊ด -> ์์ฑ
1. ๊ธฐ์กด ๋ชจ๋ธ์ ๊ฒ์ํ์ฌ ์ด๋ฅผ ์ฌ์ฌ์ฉํ๊ฑฐ๋ ์์ ํ๋ค.
์ด๋ค ๋ชจ๋ธ์ด ์ข์์ง ํ๋จํ ์ ์๋ ๋ฅ๋ ฅ (์ฆ, ๋๋ฉ์ธ ๋ชจ๋ธ์ ๊ทธ๋ฆด ์ ์์ด์ผํ๋ค.)
โ๊ฒ์ํ๋คโ ์ ๊ฐ์ Method๊ฐ ๋์ค๋ฉด ๋ฌด์กฐ๊ฑด ๊ฑฐ๋ฅธ๋ค.
2. ๋ถ๋ฅ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉ
์ฐ์ ์์๋๋ก ๋์ด๋๋ค.
3. ๋ช
์ฌ๊ตฌ๋ฅผ ํตํ ์๋ณ
์ ์ฆ ์ผ์ด์ค์์ ๋ช
์ฌ ๋๋ ๋ช
์ฌ๊ตฌ๋ฅผ ์๋ณํ๋ค.
Sale -> Class
์ซ์๋ก ํํ๋๊ฑฐ๋ ๊ฐ๋จํ๊ฒ ํํ๋๋ฉด ์์ฑ.
์ด๋ ํ ๊ณต๊ฐ์ ์ฐจ์งํ๋ฉด ํด๋์ค. -> ํท๊ฐ๋ฆฌ๋ฉด ํด๋์ค๋ค.
ํด๋์ค ๋ด์ ํด๋์ค๊ฐ ์์นํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅ! ํด๋์ค๋ ๋ง์ด ๋ง๋ค์๋ก ์ข๋ค.
DB์์์ ์ญ์ ์ด์์ด ๋ฐ์ํ๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด์ โ๋ช ์ธโ๋ฅผ ๋ฐ๋ก ์๋ก์ด ํด๋์ค๋ก ๋ถ๋ฆฌํ๋ค.
๋๋ฉ์ธ ๋ชจ๋ธ์์ ํด๋์ค๋ ๋ง์ด ์ฐ๊ด์ ์ ๊ฒ ๋ง๋๋ ๊ฒ์ด ์ข๋ค. (ํท๊ฐ๋ฆฌ๋ฉด ๊ทธ๋ฆฌ์ง๋ง๋ผ ์ฐจ๋ผ๋ฆฌ)
๋ฐ๋ผ์ ์ ๋๋ ์ ์๋ ์ฐ๊ด์ ์ฌ์ฉํ์ง ์๋๋ค.
์์ง โ ์๋์ฐจ (has a) ํฌํจ๊ด๊ณ
์๋์ฐจ โ ์๋ฐ๋ผ (is a) ์์๊ด๊ณ
์์ฑ์ attribute์ด๊ณ , ์ฐ๊ด์ Pointer์ด๋ค. ๊ฒฐ๊ตญ ํฌ์ธํฐ ์์ฒด๋ ์์ฑ์ผ๋ก ์ ์ง๋๋ค.
์ฃผ์ ๊ฐ์ฒด -> ์์ฑ(attribute)
์ง๋ ๊ต์ ๊ฐ์ฒด -> foreign key์ด๋ฏ๋ก ์ฐ๊ด์
๋ค์ค ์ฐ๊ด์ ์ํฉ์์๋ ๋ง์ ์ชฝ( *๏ผ์ ์์ฑ์ ๋ฃ์ด์ค๋ค.
SaleLineItem์ ์์ด์ผํ๋, ๋ง์ด ์ฌ์ฉ๋๊ณ ์์ฃผ ํ์๋ก ํ๋ฏ๋ก drive attribute( / )๋ก ํ๊ธฐํ๋ค.
- ๋๋ฉ์ธ ๋ชจ๋ธ์ ์์ฑ์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ์ธ ๊ฒ์ด ์ข๋ค (์ฌ์ฉ์ ๋ฐ์ดํฐ ํ์ ์ธ ๊ฒฝ์ฐ ๋ฐ์ผ๋ก ๋นผ๋ด์)
- atrribute(๊ฐ๋จ ๋๋ ์ซ์)๋ก ํ๊ธฐํ๊ธฐ ๋ณต์กํ ๊ฒ์ ๋ฐ์ผ๋ก ๋นผ๋ธ๋ค.
- ์๊ณผ ๋จ์๋ ๋จ์ ์ซ์๋ก ๋ํ๋ผ ์ ์๋ค. (amount : Number์ ์ฐ์ง๋ง๊ณ amount : Quantity)
๋น์ฆ๋์ค ์ธ๋ ฅ๊ณผ ๋น์ฆ๋์ค ๊ฐ์ฒด๊ฐ ์ด๋ป๊ฒ ์ฐ๊ด๋์ด์ผ ํ๋๊ฐ์ ๋น์ฆ๋์ค๋ฅผ ์ํํ๊ธฐ ์ํ์ฌ ๊ทธ๋ค์ด ์ด๋ป๊ฒ ํ๋ ฅํด์ผ ํ๋๊ฐ์ ๋ํ ์ถ์ํ์ด๋ค.