์ํ(Product)๊ณผ ์ฃผ๋ฌธ(Order)์ ์ค๊ณํ๋ ๊ณผ์
1. ์ํ์ ์ ์ฅํด๋ณด์.
![image](https://user-images.githubusercontent.com/59992230/107112251-8f655580-6899-11eb-8f24-f2dc6e8a3227.png)
ํ ์ํ๋ง๋ค ๊ณ ์ ์ ์ด๋ฆ๊ณผ, ๊ณ ์ ์ ์๊ฐ, ๋ฐฐ์ก๋น, ๋ช๋ช
๊ตฌ๋งคํ๋์ง ๊ตฌ๋งค์, ... ๋ฑ๋ฑ์ด ํฌํจ๋์ด์๋ค. ์ด์ค์์ ๊ณ ๋ คํด์ผํ ์ ์ ํ ์ํ์ ํ๋์ ์นดํ
๊ณ ๋ฆฌ์ ์ํ๋ค๋ ๊ฒ๊ณผ, ์ต์
๊ณผ ์ด๋ฏธ์ง๋ ์ฌ๋ฌ๊ฐ๊ฐ ์กด์ฌํ๋ค๋ ๊ฒ์ด๋ค.
๊ฐ๊ฐ๋ณ์ ์ํ์ด ์ํด์ผํ๋ ๋ถ๋ฅ์ธ PROUDCT_CATEGORY๋ฅผ ์ ์ธํด์ฃผ๊ณ , ๊ทธ ์นดํ
๊ณ ๋ฆฌ์ PK์ธ category_id๋ฅผ FK๋ก ์ ์ฅํด๋๋ค.
![image](https://user-images.githubusercontent.com/59992230/107112418-def85100-689a-11eb-90ad-d2b9fd03d3ca.png)
๋ค์์ผ๋ก๋ ์ต์
๊ณผ ์ด๋ฏธ์ง๋ฅผ ์๊ฐํด๋ณด์. PRODUCT ํ
์ด๋ธ์ column์ ์ฌ๋ฌ ๊ฐ์ ์ต์
์ด๋ ์ด๋ฏธ์ง๋ฅผ ๋ฃ๊ธฐ์๋ atomic value๋ฅผ ๋ณด์ฅํ์ง ๋ชปํ๋ค. (์ 1์ ๊ทํ ํ์)
์ฌ๋ฌ ๊ฐ์ column์ ๋ง๋ค๋ฉด ๋์ง ์์๊น? column๋ง๋ค ์ด๋ฏธ์ง1, ์ด๋ฏธ์ง2, ์ด๋ฏธ์ง3 ...
์ด๋ฐ ๋ฐฉ๋ฒ์ ์ด๋ฏธ์ง์ ์ต๋ ๊ฐ์๊ฐ ๊ณ ์ ๋์ด์๋ค๋ฉด ๊ฐ๋ฅํ ์๋ ์๊ฒ ์ง๋ง ์ด๋ฏธ์ง๊ฐ ์ฑ์์ง๊ธฐ๊น์ง null ๊ฐ์ด์ด์ผ ํ๋ค๋ ์ ์ด ๋งค์ฐ ํฐ ๋จ์ ์ผ๋ก ์์ฉํ๋ค. ๋ง๋ถ์ฌ col๋ ๋๋ฌด ๊ธธ์ด์ง๋ค.
๊ณ ๋ก PRODUCT_OPTION๊ณผ PRODUCT_IMAGE ๋ผ๋ ํ
์ด๋ธ์ ๊ฐ๊ฐ ์์ฑํด์ค๋ค.
![image](https://user-images.githubusercontent.com/59992230/107112429-f20b2100-689a-11eb-9ca7-6b3fbb612953.png)
์ต์
์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํด์ฃผ์ด์ผํ ๊น?
์ฌ์ค Idus์ ์ต์
์ ์๋์ ๊ทธ๋ฆผ์ฒ๋ผ ๋ ๋ถ๋ฅ์ ์ต์
์ผ๋ก ๊ตฌ์ฑ๋์ด์๋ค.
![image](https://user-images.githubusercontent.com/59992230/107112454-1cf57500-689b-11eb-8f6d-e7b486ae956d.png)
์ ์ฒด ์ต์
๊ณผ ๊ฐ ์ ์ฒด ์ต์
๋ณ ์ธ๋ถ ์ต์
์ด ์กด์ฌํ๋ค.
์ด๋ฐ ๊ตฌ์กฐ๋ฅผ ๋๋ ค๋ฉด ์ ์ฒด ์ต์
์๋ parent_option, ์ธ๋ถ ์ต์
์๋ child_option์ผ๋ก ์์ฑํด์ฃผ์ด ๊ฐ parent๋ณ child ์ต์
์ ํ๋์ฉ ์ ํํด์ฃผ์ด ์ฃผ๋ฌธ์ ํ๊ฒ๋ ๊ตฌ์ฑ๋์ด์๋ค.
์ต์
์ด ์กด์ฌํ์ง ์๋ ์ํ์๋ ์ต์
์ ํ ์์ด ์ํ์ ์ ๋ณด๋ง ๊ตฌ์ฑ๋๋ค.
2. ์ฃผ๋ฌธ์ ํด๋ณด์.
์ํ์ ๊ฐ ์ธ๋ถ์ต์
์ ํด๋ฆญํด์ฃผ๋ฉด
![image](https://user-images.githubusercontent.com/59992230/107113098-0c93c900-68a0-11eb-888c-0dbd34269ece.png)
์ ์ฒด์ต์
:์ธ๋ถ์ต์
/์ ์ฒด์ต์
:์ธ๋ถ์ต์
/์ ์ฒด์ต์
:์ธ๋ถ์ต์
์๋(1) ๊ฐ๊ฒฉ product ๊ฐ๊ฒฉ+์ต์
๊ฐ๊ฒฉ๋ค
์ ํํ์ ์ฃผ๋ฌธ์์์ด ์ง์ ๋๋ค.
๊ฐ ์ฃผ๋ฌธ์์์ ์ฅ๋ฐ๊ตฌ๋ ํน์ ์ฃผ๋ฌธํ๊ธฐ ๋ฒํผ์ ํด๋ฆญ์ ์๊ฐ์ id์ ์ด๋ฆ, ์ํ์ id์ ์ด๋ฆ๋ ํจ๊ป ๋๊ฒจ์ง๋ค.
์ฃผ๋ฌธํ๊ธฐ์ ์ฅ๋ฐ๊ตฌ๋ ํด๋ฆญ์ ๋ก๊ทธ์ธ์ด ๋์ด์์ง ์์ผ๋ฉด (Jwt ํ์ธ) ๋ก๊ทธ์ธ ํ์ด์ง๋ก redirect ๋๋ค.
2-1 '๊ตฌ๋งคํ๊ธฐ' ๋ฅผ ํตํ ๋ฐ๋ก ์ฃผ๋ฌธ
๊ตฌ๋งคํ๊ธฐ๋ฅผ ๋๋ฅผ ๊ฒฝ์ฐ cart_temp_id๋ผ๋ uuid๋ฅผ ์์ฑํ์ฌ ํด๋น ์ฃผ๋ฌธ์์๋ค์ ์ ์ฅ๋์ด์๋ ์ ๋ณด๋ฅผ ์ ๋ฌํด์ค๋ค.
![image](https://user-images.githubusercontent.com/59992230/107113239-09e5a380-68a1-11eb-8b10-cfe20988c8df.png)
![image](https://user-images.githubusercontent.com/59992230/107113307-84162800-68a1-11eb-9469-42229eed3de2.png)
์๊ฐ์ id ๋ฐ ์ด๋ฆ, ์ํ์ id ๋ฐ ์ด๋ฆ, ๊ทธ๋ฆฌ๊ณ ๋ ๊ฐ์ง์ ์ฃผ๋ฌธ์์์ ์ ๋ณด๋ฅผ ํจ๊ป ์ ๋ฌํ๋ค.
'๋ฐ๋ก์ฃผ๋ฌธ' ํํ์์๋ X ๋ฒํผ์ผ๋ก ํญ๋ชฉ์ ์ญ์ ๊ฐ ๋ถ๊ฐ๋ฅํ๋ค.
๋ก๊ทธ์ธ์ด ๋์ด์์ง ์๋๋ค๋ฉด redirect ์ํค๊ณ , ๊ทธ ๋ cart_temp_ip๋ query paramter์ ๋ด๊ฒจ์ ์ ๋ฌ๋๋ค.
![image](https://user-images.githubusercontent.com/59992230/107113235-00f4d200-68a1-11eb-89dc-1cb8a50d3d0b.png)
2-2. '์ฅ๋ฐ๊ตฌ๋'๋ฅผ ํตํ ์ฅ๋ฐ๊ตฌ๋ ๋ด๊ธฐ ํ ์ฃผ๋ฌธ
์ฅ๋ฐ๊ตฌ๋์ ๋ด๊ฒ๋๋ค๋ฉด ์ฃผ๋ฌธ์์์ ์ ๋ณด๋ค์ cart_detail์ ๋ด๊ฒ๋๋ค.
cart_detail์๋
![image](https://user-images.githubusercontent.com/59992230/107118071-fa2a8700-68c1-11eb-8c88-7619c969747e.png)
๋ค์๊ณผ ๊ฐ์ ์ ๋ณด๋ค์ด ํ์ํ ๊ฒ์ด๋ค.
๋ด์ ์ฅ๋ฐ๊ตฌ๋์ ์ ๋ณด๋ค์
![image](https://user-images.githubusercontent.com/59992230/107113557-08b57600-68a3-11eb-8962-ffd379fdffba.png)
์ฅ๋ฐ๊ตฌ๋ ๋ฒํผ์ ํด๋ฆญ์ ์ฅ๋ฐ๊ตฌ๋ detail์ ์ ์ฒด list๋ฅผ ๋ณด์ฌ์ค๋ค.
![image](https://user-images.githubusercontent.com/59992230/107113475-7b722180-68a2-11eb-8694-e755ea7f16bd.png)
๋ฐ๋ก์ฃผ๋ฌธ๊ณผ๋ ๋ฌ๋ฆฌ X ๋ฒํผ ํน์ ํฑ๋๋ฐํด ๋ฒํผ์ ํตํด ์ญ์ or ์ต์
์์ ์ด ๊ฐ๋ฅํ๋ค.
์ดํ์ ๊ฒฐ์ ํ๋ ๋ฐฉ์์ ๋ ๊ฐ์ง ๋ฐฉ์์ด ๋์ผํ๋ค.
3. ๊ฒฐ์ ํด์ ์ฃผ๋ฌธํ๊ธฐ
๊ฒฐ์ ํ๊ธฐ์์๋ ์ฃผ๋ฌธํ๋ ค๋ ์ฌ๋์ ์ ๋ณด (์ด๋ฆ, ์ ํ๋ฒํธ)์ ์ฃผ์์ง ์ธ๊ฐ์ง๋ฅผ ์ ํํ ์ ์๊ฒ ์ค์ ํด๋์๊ณ
์ฃผ๋ฌธ ์ํ ์ ๋ณด์์๋ ์ฃผ๋ฌธ์์ ํํ๋ก ๋ถ๋ฌ์จ ์ ๋ณด๋ค์ ์ ๋ฌ๋ฐ์ ํด๋น ์ ๋ณด๋ค์ ํ์ํด์ค๋ค.
![image](https://user-images.githubusercontent.com/59992230/107113874-297ecb00-68a5-11eb-85a7-5c8bc04fc9fd.png)
๊ฒฐ์ ๋ฅผ ์งํํ๋ฉด
์๋์ ๊ฐ์ด ์ฃผ๋ฌธ์ ๋ณด (ORDER) ๋ผ๋ ํ
์ด๋ธ์ ์ฃผ๋ฌธํ ๋ ์ง์ ์ด ๊ฐ๊ฒฉ ๋ฐ ๊ฒฐ์ ์ ๋ณด๋ฅผ ์ ์ฅํด์ฃผ๊ณ
๊ฐ๊ฐ๋ณ์ ์ฃผ๋ฌธ์์๋ค์ ์ฃผ๋ฌธ์์ธ (ORDER_DETAIL) ํ
์ด๋ธ์ ์ ์ฅํด์ค๋ค.
![image](https://user-images.githubusercontent.com/59992230/107113919-69de4900-68a5-11eb-9d67-01917775193c.png)
![image](https://user-images.githubusercontent.com/59992230/107118063-e67f2080-68c1-11eb-9db5-03e564d55845.png)
์ด๋ ์ฃผ๋ฌธ ์์ธ๋ฒํธ๋ ๊ฐ ์ฃผ๋ฌธ๋ฒํธ๋น ํด๋นํ๋ ์ฃผ๋ฌธ์์๋ค์ ์์๋ฅผ 1, 2, 3 ์์ผ๋ก ์ง์ ํ์ฌ ๋ฃ์ด์ค๋ค.