๐Ÿช kakaotech campus

์นดํ…Œ์ผ | [STEP2 clone coding] 1์ฃผ์ฐจ ๊ณผ์ œ - (3)

c0zi 2023. 6. 30. 12:41

๊ณผ์ œ๋ช…

1. ์š”๊ตฌ์‚ฌํ•ญ๋ถ„์„ / API์š”์ฒญ ๋ฐ ์‘๋‹ต ์‹œ๋‚˜๋ฆฌ์˜ค ๋ถ„์„
2. ์š”๊ตฌ์‚ฌํ•ญ ์ถ”๊ฐ€ ๋ฐ˜์˜ ๋ฐ ํ…Œ์ด๋ธ” ์„ค๊ณ„๋„

 

๊ณผ์ œ ์„ค๋ช… 

1. ์š”๊ตฌ์‚ฌํ•ญ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๋ณด๊ณ  ๋ถ€์กฑํ•ด ๋ณด์ด๋Š” ๊ธฐ๋Šฅ์„ ํ•˜๋‚˜ ์ด์ƒ ์ฒดํฌํ•˜์—ฌ README์— ๋‚ด์šฉ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

2. ์ œ์‹œ๋œ ํ™”๋ฉด์„ค๊ณ„๋ฅผ ๋ณด๊ณ  ํ•ด๋‹น ํ™”๋ฉด์„ค๊ณ„์™€ ๋ฐฐํฌ๋œ ๊ธฐ์กด ์„œ๋ฒ„์˜ API์ฃผ์†Œ๋ฅผ ๋งค์นญํ•˜์—ฌ README์— ๋‚ด์šฉ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. (์นด์นด์˜ค ํ™”๋ฉด์„ค๊ณ„ ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ์žˆ์Œ)

 

3. ๋ฐฐํฌ๋œ ์„œ๋ฒ„์— ๋ชจ๋“  API๋ฅผ POSTMAN์œผ๋กœ ์š”์ฒญํ•ด๋ณธ ๋’ค ์‘๋‹ต๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•˜๊ณ  ๋ถ€์กฑํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์ฒดํฌํ•˜์—ฌ README์— ๋‚ด์šฉ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

4. ํ…Œ์ด๋ธ” ์„ค๊ณ„๋ฅผ ํ•˜์—ฌ README์— ER-Diagram์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์ œ์ถœํ•˜์‹œ์˜ค. 

  • API ์š”์ฒญ ์‘๋‹ต์— ๋”ฐ๋ผ ํ…Œ์ด๋ธ”์„ ์˜ˆ์ธกํ•ด์„œ ์ž‘์„ฑ
  • er-diagram ์„ค๊ณ„ 

 


04) ํ…Œ์ด๋ธ” ์„ค๊ณ„๋ฅผ ํ•˜์—ฌ README์— ER-Diagram์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์ œ์ถœํ•˜์‹œ์˜ค.

 

์นด์นด์˜คํ…Œํฌ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ SQL์— ๋Œ€ํ•ด ๋ฐฐ์šฐ๊ธด ํ–ˆ์ง€๋งŒ, ์‚ฌ์šฉ๋ฒ•๊ณผ ์‹ค์Šต ์œ„์ฃผ๋กœ ๋ฐฐ์› ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฒˆ ๊ณผ์ œ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ SQL ๋ฌธ๋ฒ•๋“ค์„ ํ•˜๋‚˜์”ฉ ์ตํ˜€๊ฐ€๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

 

1. User ํ…Œ์ด๋ธ”

 

- id : PK

- username : ์‚ฌ์šฉ์ž ์ด๋ฆ„

- email : ์‚ฌ์šฉ์ž ์ด๋ฉ”์ผ ⇒ UNIQUE

- password : ์‚ฌ์šฉ์ž ํŒจ์Šค์›Œ๋“œ

 

 

user ํ…Œ์ด๋ธ”์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ, ์ด๋ฅผ ํ† ๋Œ€๋กœ sql๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

 

CREATE TABLE user (
	id int(11) NOT NULL AUTO_INCREMENT,
	email varchar(100) NOT NULL,
	password varchar(256) NOT NULL,
	username varchar(45) NOT NULL,
 	PRIMARY KEY (id),
	UNIQUE KEY email_UNIQUE (email)
);
User ํ…Œ์ด๋ธ”์—์„œ id, email, password, username์€ ํ•„์ˆ˜์ ์œผ๋กœ ์ž…๋ ฅ๋ฐ›์•„์•ผ ํ•˜๋Š” ํ•„๋“œ์ด๋ฏ€๋กœ, 'NOT NULL'๊ณผ ๊ฐ™์€ ์ œ์•ฝ ์‚ฌํ•ญ์„ ๋„ฃ์–ด์ค€๋‹ค. 
id ๊ฐ’์˜ ๊ฒฝ์šฐ PRIMARY KEY('id')๋กœ ์ž…๋ ฅํ•˜์—ฌ PK๋กœ ์„ค์ •ํ•ด์ฃผ์—ˆ์œผ๋ฉฐ AUTO_INCREMENT๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ž…๋ ฅ๋  ๋•Œ๋งˆ๋‹ค ์ž๋™์œผ๋กœ 1์”ฉ ์ฆ๊ฐ€์‹œ์ผœ ์ฃผ๋Š” ์†์„ฑ์œผ๋กœ, id๊ฐ’์ด ์ž…๋ ฅ๋  ๋•Œ๋งˆ๋‹ค 1์”ฉ ์ฆ๊ฐ€ํ•˜๋„๋ก ํ•œ๋‹ค.

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=goddlaek&logNo=221005664911 

 

[Mysql] Auto Increment ์‚ฌ์šฉํ•˜๊ธฐ

์Šคํ‚ค๋งˆ๋ฅผ ์ž‘์„ฑํ•˜๋‹ค๋ณด๋ฉด ๋ฐ์ดํ„ฐ์˜ ์ˆ˜๋ฅผ p.k๋กœ ์„ค์ •ํ•ด์•ผ ํ• ๋•Œ๊ฐ€ ์žˆ๋‹ค. ์ด๋Ÿด๊ฒฝ์šฐ ์ƒˆ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ insertํ• ๋•Œ๋งˆ...

blog.naver.com

email ํ•„๋“œ๋Š” UNIQUE KEY๋ฅผ ๊ฑธ์–ด์ฃผ์–ด ํ•ด๋‹น ์—ด์— ์ค‘๋ณต๋œ ๊ฐ’์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ, ๊ฐ ํ–‰์€ ํ•ด๋‹น ์—ด์˜ ๊ฐ’์ด ๊ณ ์œ ํ•˜๋„๋ก ํ•œ๋‹ค. ์ฆ‰, ๋‹ค๋ฅธ ์œ ์ €๊ฐ€ ๊ฐ™์€ ์ด๋ฉ”์ผ๋กœ ๊ฐ€์ž…์„ ํ•  ์ˆ˜ ์—†๋„๋ก ํ•œ๋‹ค.

https://thisisprogrammingworld.tistory.com/133

 

[MySQL]๋‚ ์งœ/์‹œ๊ฐ„ ํƒ€์ž…๊ณผ TIMESTAMP ์นผ๋Ÿผ ์ƒ์„ฑ

MySQL์˜ ๋‚ ์งœ/์‹œ๊ฐ„ ํƒ€์ž… MySQL์˜ ๋‚ ์งœ/์‹œ๊ฐ„ํƒ€์ž…์œผ๋กœ๋Š” DATE, DATETIME, TIME, TIMESTAMP๊ฐ€ ์žˆ๋‹ค. DATE ํƒ€์ž…์€ ๋‚ ์งœ๋งŒ ํฌํ•จํ•˜๋Š” ํƒ€์ž… YYYY-mm-dd ํ˜•์‹์œผ๋กœ ์ž…๋ ฅ ๊ฐ€๋Šฅ 1000-01-01๋ถ€ํ„ฐ 9999-12-31๊นŒ์ง€๋งŒ ์ž…๋ ฅ ๊ฐ€๋Šฅ DATETIME

thisisprogrammingworld.tistory.com

 

2. Product ํ…Œ์ด๋ธ”

 

- id : PK
- product_name : ์ƒํ’ˆ๋ช…
- description : ์ƒํ’ˆ ์„ค๋ช…
- image : ์ƒํ’ˆ ์‚ฌ์ง„
- price : ์ƒํ’ˆ ๊ฐ€๊ฒฉ

 

Product ํ…Œ์ด๋ธ”์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๊ณ , SQL๋ฌธ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•œ๋‹ค.

 

CREATE TABLE product (
	id int(11) NOT NULL AUTO_INCREMENT,
	product_name varchar(100) NOT NULL,
	description varchar(1000),
	image varchar(500),
	price int(11),
	PRIMARY KEY (id)
);

 

https://heavening.tistory.com/85

 

int์˜ ์ข…๋ฅ˜ ๋ฐ ํฌ๊ธฐ tinyint, smallint, int, bigint ์ดˆ๊ฐ„๋‹จ ์ •๋ฆฌ

int๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ํฌ๊ธฐ๊ฐ€ ๊ฐ€๋” ํ—ท๊ฐˆ๋ฆฌ๋Š”๋ฐ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. int๋Š” inteager์˜ ์•ฝ์ž์ž…๋‹ˆ๋‹ค. int๋Š” ์ •์ˆ˜์ž…๋‹ˆ๋‹ค. ์†Œ์ˆซ์ ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ๋ถ„์€ decimal ๊ฐ™์€ ๋ฐ์ดํ„ฐ ํ˜•์‹์„ ์‚ฌ์šฉํ•˜์„ธ์š” :)

heavening.tistory.com

https://m.blog.naver.com/darkxpavmffj/90089405466

 

Mysql varchar(50) ๊ณผ char(50)์˜ ์˜๋ฏธ

DB ์—์„œ varchar์ด๋ผ๋Š” ๊ฒƒ์€ ๊ฐ€๋ณ€๊ธธ์ด ๋ฌธ์ž์—ด์„ ์˜๋ฏธํ•˜๋ฉฐ  varchar(50)์€ 50byte๊นŒ์ง€ ๋„ฃ...

blog.naver.com

 

3. Option ํ…Œ์ด๋ธ”

 

- id : PK
- product_id : FK ⇒ priduct(id)
- option_name : ์˜ต์…˜ ์ด๋ฆ„
- price : ์˜ต์…˜ ๊ฐ€๊ฒฉ

 

Product ํ…Œ์ด๋ธ”๊ณผ Option ํ…Œ์ด๋ธ”์„ ๋ณ„๋„๋กœ ์ƒ์„ฑํ•˜๋Š” ์ด์œ ๋Š”, ์ด ๋‘˜์˜ ๊ด€๊ณ„๊ฐ€ 1 ๋Œ€ N ๊ด€๊ณ„์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์—์„œ๋Š” ์ค‘๋ณต์„ ์ตœ์†Œํ™”ํ•˜๊ณ  ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ ๋ฐ ํšจ์œจ์ ์œผ๋กœ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ •๊ทœํ™”ํ•œ๋‹ค. ์ด๋•Œ Product ํ…Œ์ด๋ธ”๊ณผ Option ํ…Œ์ด๋ธ”์„ ๋‚˜๋ˆ„์–ด ์„ค๊ณ„ํ•จ์œผ๋กœ์จ ์ค‘๋ณต๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ”ผํ•˜๊ณ  ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ๊ณผ ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ, ์˜ต์…˜์˜ ๊ฐ€๊ฒฉ, ์žฌ๊ณ  ์ˆ˜๋Ÿ‰, ์ œ์กฐ์‚ฌ ์ •๋ณด ๋“ฑ์„ ์ถ”๊ฐ€๋กœ ์ €์žฅํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋Ÿฌํ•œ ํ™•์žฅ์„ฑ๊ณผ ์œ ์—ฐ์„ฑ์„ ์œ„ํ•ด option ํ…Œ์ด๋ธ”์„ ๋”ฐ๋กœ ์ƒ์„ฑํ•˜๊ณ  ํ•„์š”ํ•œ ์†์„ฑ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

https://appmaster.io/ko/blog/deiteo-jeonggyuhwaran-mueosinga

 

๋ฐ์ดํ„ฐ ์ •๊ทœํ™”๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? | AppMaster

๋ฐ์ดํ„ฐ ์ •๊ทœํ™”๋Š” ์ค‘๋ณต์„ฑ์„ ์ค„์ด๊ณ  ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ •๋ณด๋ฅผ ๊ตฌ์กฐํ™”ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ

appmaster.io

 

CREATE TABLE option (
	id int(11) NOT NULL AUTO_INCREMENT,
	product_id int(11) DEFAULT NULL,
	option_name varchar(100) NOT NULL,
	price int(11) NOT NULL,
	PRIMARY KEY (id),
	FOREIGN KEY (product_id) REFERENCES product (id)
);
FK(Foreign Key)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Product ํ…Œ์ด๋ธ”์˜ id์„ ๋ถˆ๋Ÿฌ์™€ ํ›„์— ์กฐ์ธํ•˜์—ฌ ์ œํ’ˆ๊ณผ ์˜ต์…˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ๋ฒˆ์— ๊ฐ€์ ธ์˜ฌ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ œ์•ฝ์กฐ๊ฑด(constraint)๋ฅผ ๊ฑธ์–ด์ค€๋‹ค.

https://jerryjerryjerry.tistory.com/49

 

[SQL] ํ‚ค(์Šˆํผํ‚ค,๋Œ€์ฒดํ‚ค,ํ›„๋ณดํ‚ค,๊ธฐ๋ณธํ‚ค,์™ธ๋ž˜ํ‚ค)

* ํ‚ค(Key) - ์—ด์‡ ๋Š” ๋ฌด์–ธ๊ฐ€๋ฅผ ์—ด๊ฑฐ๋‚˜ ์ž ๊ธ€ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ๊ฐ™์€ ๊ฒƒ์ด ํ•˜๋‚˜๋„ ์—†๋‹ค. ์šฐ๋ฆฌ์ง‘ ์—ด์‡ ๊ฐ€ ์˜†์ง‘์˜ ์—ด์‡ ๋ž‘ ๋‹ค๋ฅด๋“ฏ์ด ๋ง์ด๋‹ค. - ์ด์™€ ๊ฐ™์ด ํ‚ค๋ผ๋Š” ๊ฒƒ์€ ๋ฌด์–ธ๊ฐ€๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๊ณ ์œ ํ•œ ์‹๋ณ„์ž(

jerryjerryjerry.tistory.com

https://runtoyourdream.tistory.com/129

 

[SQL] ์ œ์•ฝ์กฐ๊ฑด, Constraint(NOT NULL, UNIQUE, PRIMARY KEY(๊ธฐ๋ณธํ‚ค), FOREIGN KEY(์™ธ๋ž˜ํ‚ค))!

ํ…Œ์ด๋ธ” ์ž‘์„ฑ์‹œ์— Constraint๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ž…๋ ฅํ•˜๋Š” ์ž๋ฃŒ์— ๋Œ€ํ•ด์„œ ์ œ์•ฝ, ์ฆ‰ ๊ทœ์น™์„ ์ •ํ•ด์ค„ ์ˆ˜ ์žˆ๋Š”๋ฐ์š”. ์ด๋•Œ ์ •ํ•ด์ง„ ์ œ์•ฝ์— ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž…๋ ฅ์ด ๋ฉ๋‹ˆ๋‹ค. ์ œ์•ฝ์— ๋ฐฐ๋ฐ˜๋œ๋‹ค๋ฉด ์ž๋ฃŒ ์ž…๋ ฅ์ด ๊ฑฐ๋ถ€๋˜

runtoyourdream.tistory.com

์‹ค์Šต ๋ฉ˜ํ† ๋‹˜๊ณผ์˜ Q&A ์‹œ๊ฐ„์—์„œ ์™ธ๋ž˜ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฐธ์กฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•˜์‹œ๋ฉด์„œ ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ๋“ค์–ด์ฃผ์…จ๋Š”๋ฐ, ์™ธ๋ž˜ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์ถ”ํ›„์— ์•Œ์•„๋ณด๊ณ  ์‹ถ๋‹ค.

 

4. Cart ํ…Œ์ด๋ธ”

 

- id : PK
- user_id : FK ⇒ user(id)
- option_id : FK ⇒ option(id)
- total_price : ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ฐ€๊ฒฉ
- quantity : ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋“ค์–ด๊ฐ„ ๊ฐฏ์ˆ˜

 

CREATE TABLE cart (
	id int(11) NOT NULL AUTO_INCREMENT,
	user_id int(11) NOT NULL,
	option_id int(11) NOT NULL,
	quantity int(11) NOT NULL,
	total_price int(11) NOT NULL,
	PRIMARY KEY (id),
	FOREIGN KEY (user_id) REFERENCES user(id),
	FOREIGN KEY (option_id) REFERENCES option(id),
);
user ํ…Œ์ด๋ธ”์˜ id, option ํ…Œ์ด๋ธ”์˜ id ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‘ ํ‚ค๋ฅผ ์ฐธ์กฐํ•œ๋‹ค. ์–ด๋–ค ์ œํ’ˆ์ธ์ง€์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํ•„์š”์—†๋Š” ์ด์œ ๋Š” Option ํ…Œ์ด๋ธ”์— ์ด๋ฏธ ํ•ด๋‹น ์˜ต์…˜์˜ ์ œํ’ˆ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

5. Order ํ…Œ์ด๋ธ”

 

- id : ์ฃผ๋ฌธ ๋ฒˆํ˜ธ(PK)
- user_id : FK ⇒ user(id)
- totalPrice : ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ฐ€๊ฒฉ

 

CREATE TABLE order (
	id int(11) NOT NULL AUTO_INCREMENT,
	user_id int(11) NOT NULL,
	totalprice int(11),
	PRIMARY KEY (id),
	FOREIGN KEY (user_id) REFERENCES user(id)
);
Order ํ…Œ์ด๋ธ”์—๋Š” ์œ ์ € ์ •๋ณด์— ๋Œ€ํ•œ ํ•„๋“œ๋งŒ ํ•„์š”ํ•œ ์ด์œ ๋Š” ํ•˜๋‚˜์˜ ์ฃผ๋ฌธ์€ ์—ฌ๋Ÿฌ ๋ช…์˜ ์œ ์ €๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ๋ฌธ ํ…Œ์ด๋ธ”์—์„œ๋Š” ์œ ์ €์˜ ์ •๋ณด๋งŒ ๊ฐ€์ง€๊ณ , ์•„์ดํ…œ ํ…Œ์ด๋ธ”์—์„œ ์ฃผ๋ฌธ์— ๋Œ€ํ•œ ์ •๋ณด์™€ ๊ตฌ๋งค๋œ ์ œํ’ˆ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉด ๋œ๋‹ค.

 

6. Item ํ…Œ์ด๋ธ”

 

- id : PK
- orderId : FK ⇒ order(id)
- optionId : FK ⇒ option(id)
- quantity : ์˜ต์…˜ ๊ฐฏ์ˆ˜
- price : ๊ฐ€๊ฒฉ

 

CREATE TABLE item (
    id int(11) NOT NULL AUTO_INCREMENT,
    option_id int(11) NOT NULL,
    quantity int(11) NOT NULL,
    price int(11) NOT NULL,
    order_id int(11) NOT NULL,
    PRIMARY KEY (id),
    FOREIGN KEY (order_id) REFERENCES order(id),
    FOREIGN KEY (option_id) REFERENCES option(id),
);
๊ตฌ๋งค๋œ ์ œํ’ˆ์˜ ์˜ต์…˜์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜๊ณ  ๊ตฌ๋งคํ•œ ์ˆ˜๋Ÿ‰๊ณผ ๊ฐ€๊ฒฉ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ํ•ด๋‹น ์˜ต์…˜์˜ ๊ฐ€๊ฒฉ์ด ๋‹ฌ๋ผ์งˆ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, (๊ตฌ๋งค ์‹œ๊ธฐ์˜ ๊ฐ€๊ฒฉ๊ณผ ํ˜„์žฌ์˜ ๊ฐ€๊ฒฉ์˜ ๋ณ€๋™ ๋“ฑ) ๊ฐ€๊ฒฉ ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€์ ์œผ๋กœ ๋„ฃ์–ด์ค€๋‹ค. ๋˜ํ•œ, ์–ด๋–ค ์ฃผ๋ฌธ์˜ ์•„์ดํ…œ์ธ์ง€์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

 


ER-Diagram