[๋ฐ๋ธŒ์ฝ”์Šค] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ๋ง ํ”„๋กœ์ ํŠธ(ERD, DDL)

2025. 4. 9. 17:28ยท๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค/ํ”„๋กœ์ ํŠธ

์˜ค๋Š˜์€ ๊ฐ•์˜๋ฅผ ๋“ฃ์ง€ ์•Š๊ณ , 9์‹œ๋ถ€ํ„ฐ zep์— ๋ชจ์—ฌ์„œ ํ•˜๋ฃจ์ข…์ผ ์นด๋ฉ”๋ผ ์ผœ๊ณ  ํ”„๋กœ์ ํŠธ ์ˆ˜ํ–‰ํ•˜๋Š” ๋‚ ์ด์—ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ๋Š” ์ด 2๊ฐœ. ํฌํŠธํด๋ฆฌ์˜ค ํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ์™€, ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ๋ง์„ ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์˜€๋‹ค. ํฌํŠธํด๋ฆฌ์˜ค ํŽ˜์ด์ง€๋Š” ์ด๊ฒƒ์ €๊ฒƒ ์กฐ๊ธˆ์”ฉ ๊ณ„์† ์ž‘์—… ์ค‘


๐ŸšˆERD

Entity Relationship Diagram, ์‹œ์Šคํ…œ์˜ ์—”ํ‹ฐํ‹ฐ๋“ค์ด ๋ฌด์—‡์ด ์žˆ๋Š”์ง€, ์–ด๋–ค ๊ด€๊ณ„๊ฐ€ ์žˆ๋Š”์ง€ ๋‚˜ํƒ€๋‚ด๋Š” ๋‹ค์ด์–ด๊ทธ๋žจ

์š”๊ตฌ์‚ฌํ•ญ

๊ฐ•์‚ฌ๋‹˜๊ป˜์„œ ํ™”๋ฉด ์™€์ด์–ดํ”„๋ ˆ์ž„์„ ์ฃผ์…จ๋‹ค. ๊ณต์—ฐ ํ‹ฐ์ผ“ํŒ… ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์™€์ด์–ดํ”„๋ ˆ์ž„์ด๊ณ , ์ฃผ์–ด์ง„ ํŽ˜์ด์ง€๋Š” 5๊ฐœ์˜€๋‹ค.

1. ๊ณต์—ฐ ๋ชฉ๋ก ํŽ˜์ด์ง€
2. ๊ณต์—ฐ ์ƒ์„ธ ํŽ˜์ด์ง€
3. ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€
4. ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€
5. ์ฃผ๋ฌธ ๋‚ด์—ญ ํŽ˜์ด์ง€

 

์šฐ์„  ์™„์„ฑํ•œ ERD๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค!

์™„์„ฑ๋œ ERD


๐Ÿ“…ํ…Œ์ด๋ธ”

user_info

์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ํ…Œ์ด๋ธ”. ๋กœ๊ทธ์ธ/ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ๊ณผ ์ง์ ‘์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ๋‹ค.

  • id: ์‚ฌ์šฉ์ž ์‹๋ณ„์„ ์œ„ํ•œ ๊ธฐ๋ณธ ํ‚ค. AUTO_INCREMENT๋ฅผ ์‚ฌ์šฉํ•ด ์ž๋™์œผ๋กœ ์ฆ๊ฐ€ํ•œ๋‹ค.
  • email, name, password: ํšŒ์›๊ฐ€์ž… ๋ฐ ๋กœ๊ทธ์ธ์— ํ•„์š”ํ•œ ํ•„์ˆ˜ ํ•„๋“œ์ด๋‹ค. VARCHAR(100)๋กœ ์„ ์–ธํ•˜์˜€๋‹ค.
  • created_at, updated_at: ๊ฐ๊ฐ ํšŒ์›๊ฐ€์ž… ์‹œ๊ฐ๊ณผ ์ •๋ณด ์ˆ˜์ • ์‹œ๊ฐ์„ ์ €์žฅํ•˜๋Š” ํ…Œ์ด๋ธ”. ์š”๊ตฌ์‚ฌํ•ญ ํŽ˜์ด์ง€์—์„œ๋Š” ๋ณด์ด์ง€ ์•Š์ง€๋งŒ, ์‚ฌ์šฉ์ž ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์‹œ ํ•„์ˆ˜๋˜๋Š” ํ•„๋“œ๋ผ๊ณ  ์ƒ๊ฐํ•˜์—ฌ ํฌํ•จํ•˜์˜€๋‹ค. ๋‘˜ ๋‹ค ์‹œ๊ฐ„์„ ์ž๋™์œผ๋กœ ๊ธฐ๋กํ•˜๋„๋ก CURRENT_TIMESTAMP๋ฅผ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ •ํ–ˆ๋‹ค.

shows

๊ณต์—ฐ ์ •๋ณด๋ฅผ ๋‹ด๋Š” ํ…Œ์ด๋ธ”. ๊ณต์—ฐ ๋ชฉ๋ก๊ณผ ๊ณต์—ฐ ์ƒ์„ธ ํŽ˜์ด์ง€์— ์ถœ๋ ฅ๋˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ๋‹ค.

  • id: ๊ณต์—ฐ ์‹๋ณ„์šฉ ๊ธฐ๋ณธ ํ‚ค์ด๋‹ค. user_info์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ AUTO_INCREMENT๋ฅผ ์ ์šฉํ•˜์—ฌ ์ž๋™์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋ฉฐ, ํ›„์ˆ ํ•  ํ…Œ์ด๋ธ”๋„ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ id๋ฅผ ์„ค์ •ํ•˜์˜€๋‹ค.
  • title, description: VARCHAR()๋กœ ์„ ์–ธํ•˜์˜€์œผ๋ฉฐ, ์„ค๋ช…์€ ๊ธด ๋ฌธ์žฅ์„ ์œ„ํ•ด VARCHAR(1000)์„ ์‚ฌ์šฉํ–ˆ๋‹ค.
  • price, quantity: ํ‹ฐ์ผ“ ๊ฐ€๊ฒฉ๊ณผ ๊ณต์—ฐ ์ „์ฒด ์ขŒ์„ ์ˆ˜ ์ด๋‹ค.
  • show_date: ๊ณต์—ฐ ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„์„ ์ €์žฅํ•˜๋Š” ํ•„๋“œ. created_at ๋“ฑ๊ณผ ๋‹ฌ๋ฆฌ, ๊ธฐ๋ณธ๊ฐ’์„ ์ฃผ์ง€ ์•Š๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ž…๋ ฅํ•˜๋Š” ํ˜•ํƒœ๋กœ ์„ค์ •ํ•˜์˜€๋‹ค.
  • created_at: ๊ณต์—ฐ ์ •๋ณด๋ฅผ ๋“ฑ๋กํ•œ ์‹œ๊ฐ„์„ ์ €์žฅํ•œ๋‹ค.

poster

๊ณต์—ฐ์— ์—ฐ๊ฒฐ๋˜๋Š” ์ด๋ฏธ์ง€ ์ •๋ณด๋ฅผ ๋‹ด๋Š” ํ…Œ์ด๋ธ”์ด๋‹ค.

  • id: ํฌ์Šคํ„ฐ ์‹๋ณ„์šฉ ํ‚ค
  • path: ์‹ค์ œ ์ด๋ฏธ์ง€ URL ๋˜๋Š” ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ์ €์žฅํ•œ๋‹ค.
โ“์™œ shows์™€ poster์„ ๋”ฐ๋กœ ๊ตฌ์„ฑํ–ˆ๋‚˜?
ํ•˜๋‚˜์˜ ๊ณต์—ฐ์ด ์—ฌ๋Ÿฌ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์งˆ ์ˆ˜๋„ ์žˆ๊ณ , ์—ฌ๋Ÿฌ ๊ณต์—ฐ์ด ํ•˜๋‚˜์˜ ์ด๋ฏธ์ง€๋ฅผ ๊ณต์œ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ๋˜ ์ด๋ฏธ์ง€ ๋ณ€๊ฒฝ์ด๋‚˜ ์žฌ์‚ฌ์šฉ์— ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋„์˜ ํ…Œ์ด๋ธ”๋กœ ๊ตฌ์„ฑํ•˜๊ณ , ์™ธ๋ž˜ํ‚ค๋กœ ์ฐธ์กฐํ•˜๋„๋ก ๊ตฌ์„ฑํ–ˆ๋‹ค.

 

orders

์‚ฌ์šฉ์ž ์ „์ฒด ์ฃผ๋ฌธ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ํ…Œ์ด๋ธ”. ์žฅ๋ฐ”๊ตฌ๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ํŽธํ•˜๋‹ค.

  • id: ์ฃผ๋ฌธ ์‹๋ณ„์šฉ ๊ธฐ๋ณธ ํ‚ค
  • order_code: ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์งˆ ๊ณ ์œ  ์ฃผ๋ฌธ๋ฒˆํ˜ธ์ด๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ์˜ id๋Š” AUTO_INCREMENT ๋˜๋Š” INTํ˜•์ด์ง€๋งŒ, ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œ๋˜๋Š” ์ฃผ๋ฌธ๋ฒˆํ˜ธ๋Š” ๋”ฐ๋กœ ์ƒ์„ฑํ•˜์—ฌ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์„ ์ƒ๊ฐํ•˜์—ฌ ๊ตฌ์„ฑํ–ˆ๋‹ค.
  • user_id: ์ฃผ๋ฌธํ•œ ์‚ฌ์šฉ์ž. user_info.id๋ฅผ ์ฐธ์กฐํ•˜๋Š” ์™ธ๋ž˜ํ‚ค์ด๋‹ค.
  • total_price: ์ „์ฒด ์ฃผ๋ฌธ ๊ธˆ์•ก
  • order_date: ์ฃผ๋ฌธ ์‹œ์ ์„ ์ž๋™์œผ๋กœ ๊ธฐ๋กํ•˜๋„๋ก DATETIME CURRENTSTAMP๋ฅผ ์‚ฌ์šฉํ•˜์˜€์Œ

order_items

์ฃผ๋ฌธํ•˜๋Š” ๊ณต์—ฐ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ํ…Œ์ด๋ธ”

  • id: ์ฃผ๋ฌธ ํ•ญ๋ชฉ ์‹๋ณ„ ํ‚ค
  • order_id: ์–ด๋–ค ์ฃผ๋ฌธ์— ์†ํ•œ ํ•ญ๋ชฉ์ธ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.
  • show_id: ์–ด๋–ค ๊ณต์—ฐ์„ ์ฃผ๋ฌธํ–ˆ๋Š”์ง€ ๋‚˜ํƒ€๋‚ธ๋‹ค.
  • price: ์ฃผ๋ฌธํ•˜๋Š” ๊ณต์—ฐ ๊ฐ€๊ฒฉ
  • quantity: ์ฃผ๋ฌธํ•œ ์ˆ˜๋Ÿ‰
โ“orders์™€ order_items๋ฅผ ์™œ ๋”ฐ๋กœ ๊ตฌ์„ฑํ–ˆ๋‚˜?
ํ•œ ๋ฒˆ์˜ ์ฃผ๋ฌธ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ณต์—ฐ์„ ๋‹ด์„ ์ˆ˜ ์ž‡์–ด, ์ด๋ฅผ ๋ฌถ๋Š” ์ƒ์œ„ ๊ฐœ๋…์œผ๋กœ order์„ ์ƒ์„ฑํ–ˆ๋‹ค.

 

ํ…Œ์ด๋ธ” ๊ด€๊ณ„

๐Ÿ“…user_info <-> orders

  • ๊ด€๊ณ„: 1:N
  • ์„ค์ •: orders.user_id -> user_info.id(FK)
  • ์ด์œ : ํ•œ ๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ์—ฌ๋Ÿฌ ๋ฒˆ ๊ตฌ๋งคํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ

 

๐Ÿ“…orders <-> order_items

  • ๊ด€๊ณ„: 1:N
  • ์„ค์ •: ordes_items.order_id -> order.id
  • ์ด์œ : ํ•œ ๋ฒˆ ์ฃผ๋ฌธํ•  ๋•Œ ์—ฌ๋Ÿฌ ๊ฐœ ๊ณต์—ฐ์„ ์˜ˆ๋งคํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•ญ๋ชฉ ๋‹จ์œ„๋กœ ๋ถ„๋ฆฌํ•˜์˜€๋‹ค.

 

๐Ÿ“…order_items <-> shows

  • ๊ด€๊ณ„: N:1
  • ์„ค์ •: order_items.shows_id ->shows.id
  • ์ด์œ : ์ฃผ๋ฌธ ํ•ญ๋ชฉ ํ•˜๋‚˜๋Š” ํ•˜๋‚˜์˜ ๊ณต์—ฐ์„ ์ฐธ์กฐํ•˜์ง€๋งŒ, ํ•œ ๊ฐœ์˜ ๊ณต์—ฐ์„ ์—ฌ๋Ÿฌ๊ฐœ ์ฃผ๋ฌธํ•  ์ˆ˜ ์žˆ์Œ

 

๐Ÿ“…shows <-> poster

  • ๊ด€๊ณ„: N:1
  • ์„ค์ •: shows.poster_id => poster.id(FK)
  • ์ด์œ : ํ•˜๋‚˜์˜ ํฌ์Šคํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ๊ณต์—ฐ์ด ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
๐Ÿ™„์›๋ž˜๋Š” ํ•˜๋‚˜์˜ ๊ณต์—ฐ์ด ์—ฌ๋Ÿฌ ์ด๋ฏธ์ง€๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ(๋‹ค๋Œ€๋‹ค ๊ด€๊ณ„)๋ฅผ ์—ผ๋‘์— ๋‘์—ˆ์ง€๋งŒ, ํ˜„์žฌ ํ…Œ์ด๋ธ” ๊ตฌ์กฐ์—์„œ๋Š” ์ค‘๊ฐ„ ํ…Œ์ด๋ธ” ์—†์ด ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์–ด๋ ต๋‹ค. ํ˜„์žฌ ๊ตฌ์กฐ์—์„œ๋Š” ํ•˜๋‚˜์˜ ๊ณต์—ฐ์ด ํ•˜๋‚˜์˜ ์ด๋ฏธ์ง€๋งŒ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ•˜๋‚˜์˜ ์ด๋ฏธ์ง€๋Š” ์—ฌ๋Ÿฌ ๊ณต์—ฐ์—์„œ ์žฌ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.

 

DDL

โœ…user_info ํ…Œ์ด๋ธ”
CREATE TABLE user_info (
    -> id INT AUTO_INCREMENT PRIMARY KEY,
    -> email VARCHAR(100) NOT NULL,
    -> name VARCHAR(100) NOT NULL,
    -> password VARCHAR(100) NOT NULL,
    -> created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    -> updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
    -> );

โœ…shows ํ…Œ์ด๋ธ”
CREATE TABLE shows(
    -> id INT AUTO_INCREMENT PRIMARY KEY,
    -> title VARCHAR(100) NOT NULL,
    -> poster_id INT NOT NULL,
    -> description VARCHAR(1000),
    -> price INT NOT NULL,
    -> quantity INT NOT NULL,
    -> created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    -> FOREIGN KEY (poster_id) REFERENCES poster(id)
    -> );

โœ…poster ํ…Œ์ด๋ธ”
CREATE TABLE poster (
    -> id INT AUTO_INCREMENT PRIMARY KEY,
    -> path VARCHAR(255) NOT NULL
    -> );

โœ…orders ํ…Œ์ด๋ธ”
CREATE TABLE orders(
    -> id INT AUTO_INCREMENT PRIMARY KEY,
    -> order_code VARCHAR(50) NOT NULL,
    -> user_id INT NOT NULL,
    -> total_PRICE INT NOT NULL,
    -> order_date DATETIME NOT NULL,
    -> FOREIGN KEY (user_id) REFERENCES user_info(id)
    -> );

โœ…orders_item ํ…Œ์ด๋ธ”
CREATE TABLE order_items(
    -> id INT AUTO_INCREMENT PRIMARY KEY,
    -> order_id INT NOT NULL,
    -> show_id INT NOT NULL,
    -> price INT NOT NULL,
    -> quantity INT NOT NULL,
    -> FOREIGN KEY (order_id) REFERENCES orders(id),
    -> FOREIGN KEY (show_id) REFERENCES shows(id)
    -> );

 

โŒ์˜ค๋ฅ˜: ์˜ˆ์•ฝ์–ด ์ถฉ๋Œ

์ฒ˜์Œ์—๋Š” ํ…Œ์ด๋ธ”๋ช…์„ show, order๋กœ ์„ค์ •ํ•˜๊ณ  DDL์„ ์ž‘์„ฑํ–ˆ๋”๋‹ˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'show(
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(100) NOT NULL,
poster_...' at line 1

 

์ด๋Š” MariaDB์—์„œ ์˜ˆ์•ฝ์–ด์™€ ์ถฉ๋Œํ•ด์„œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜์˜€๋‹ค.

 

๋ฐฑํ‹ฑ์œผ๋กœ ๊ฐ์‹ธ๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ•˜๊ฑฐ๋‚˜, ๋˜๋Š” ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์‰ฝ๊ฒŒ ๊ฐ€๋Šฅํ•œ ๋ฌธ์ œ์˜€๋‹ค. ๋‚˜๋Š” shows, orders๋กœ ๋ณต์ˆ˜ํ˜•์œผ๋กœ ํ…Œ์ด๋ธ”๋ช…์„ ๋ณ€๊ฒฝํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค. ์˜ˆ์•ฝ์–ด๋ฅผ ์ถฉ๋ถ„ํžˆ ๊ณ ๋ คํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ชจ๋ธ๋งํ•˜๋ผ๋Š” ๊ตํ›ˆ์„ ์–ป์—ˆ๋‹ค..

 

โŒ์ƒˆ๋กœ์šด ์ปฌ๋Ÿผ ์ถ”๊ฐ€ํ•˜๊ธฐ

ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•  ๋•Œ ์‹ค์ˆ˜๋กœ ์ปฌ๋Ÿผ์„ ํ•˜๋‚˜ ๋นผ๋จน์—ˆ๋‹ค... ALTER TABLE ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋นผ๋จน์€ ์ปฌ๋Ÿผ์„ ์ถ”๊ฐ€ํ•ด์ฃผ์—ˆ๋‹ค.

ALTER TABLE shows
ADD COLUMN show_date DATETIME NOT NULL;

 

SQL๋ฌธ

DDL๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ , SQL๋ฌธ์„ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ ์‚ฝ์ž…, ์กฐํšŒ, ์ˆ˜์ •์„ ํ•ด๋ณด์•˜๋‹ค.

โœ…user_info
//์กฐํšŒ 
SELECT * FROM user_info

//์ž…๋ ฅ
INSERT INTO user_info(email, name password) VALUES ("monicx@email.com", "dakyung", "1234@");

//์ˆ˜์ •
UPDATE user_info SET name = "hwang dakyung" WHERE id = 1;

โœ…shows
//์กฐํšŒ
SELECT * FROM shows;

//์ž…๋ ฅ
ISERT INTO shows (title, poste_id, description, price, quantity) VALUES ("....");

//์ˆ˜์ •
UPDATE shows SET description = "์žฌ๋ฐŒ์Œ" WHERE id = 1;

โœ…poster
//์กฐํšŒ
SELECT * FROM poster;

//์ž…๋ ฅ
INSERT INTO poster (path) VALUES ("https://img.com");

//์ˆ˜์ • 
UPDATE poster SET poster = "https://wicked.com" WHERE id = 1;

โœ…orders
//์กฐํšŒ
SELECT * FROM orders;

//์ž…๋ ฅ
INSERT INTO orders (order_code, user_id, total_price) VALUES ("...");

โœ…order_items
//์กฐํšŒ
SELECT * FROM order_items;

//์ž…๋ ฅ
INSERT INTO order_items (order_id, show_id, price, quantity) VALUES (1, 1, 132000, 2);

//์ˆ˜์ •
UPDATE order_items SET quantity = 1 WHERE id = 1;

๊ฒฐ๊ณผ


๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ๋Š” ๋งŽ์ด ์งœ๋ดค์ง€๋งŒ, ERD๋ฅผ ์ด๋ ‡๊ฒŒ ๊ฐ ์žก๊ณ  ๋งŒ๋“ค์–ด๋ณธ๊ฑด ๊ฑฐ์˜ ์ฒ˜์Œ์ธ ๊ฒƒ ๊ฐ™๋‹ค. ์†Œ๊ณต ํ•  ๋•Œ ํ•ด๋ณธ ๊ฒƒ ๊ฐ™๊ธฐ๋„ ํ•˜๊ณ ..? ํ…Œ์ด๋ธ” ๋‹ค ๋งŒ๋“ค๊ณ  ์„ ์œผ๋กœ ์—ฐ๊ฒฐ๊นŒ์ง€ ํ•ด๋†“์œผ๋‹ˆ ๋ญ”๊ฐ€ ๋ญ”๊ฐ€ ๋ฉ‹์žˆ๋‹ค. 

 

DDL๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งŒ๋“ค ๋•Œ ์˜คํƒ€๋ฅผ ๋„ˆ๋ฌด ๋งŽ์ด ๋‚ด์„œ ํ•˜๋‚˜ ํ…Œ์ด๋ธ” ๋งŒ๋“œ๋Š”๋ฐ 10๋ถ„๋„ ๋” ๊ฑธ๋ ธ๋‹ค. ์ง„์งœ ๋„ˆ๋ฌด ํ™”๋‚˜๊ณ  ์งœ์ฆ๋‚ฌ์ง€๋งŒ ๋•๋ถ„์— ์ด์ œ SQL๋ฌธ ๊ธฐ๋ณธ ์ •๋„๋Š” ๋„ˆ๋ฌด ์‰ฝ๊ฒŒ ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋“ฏ. ๊ฐ„๋‹จํ•˜์ง€๋งŒ ๋งŽ์€ ๋„์›€์ด ๋œ ํ”„๋กœ์ ํŠธ์ธ ๊ฒƒ ๊ฐ™๋‹ค.

 

+ ํฌํŠธํด๋ฆฌ์˜ค ๋งŒ๋“œ๋Š” ์ค‘๐Ÿ› ๏ธ

 

'๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค > ํ”„๋กœ์ ํŠธ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐ๋ธŒ์ฝ”์Šค] ๋ถ์Šคํ† ์–ด ํ”„๋กœ์ ํŠธ #1. app.js ๋ฐ ์œ ์ € api ๋ผ์šฐํ„ฐ ํ…œํ”Œ๋ฆฟ  (0) 2025.05.13
[๋ฐ๋ธŒ์ฝ”์Šค] BOOK STORE ํ”„๋กœ์ ํŠธ API ์„ค๊ณ„(2)  (1) 2025.05.09
[๋ฐ๋ธŒ์ฝ”์Šค] BOOK STORE ํ”„๋กœ์ ํŠธ API ์„ค๊ณ„(1)  (4) 2025.05.08
[๋ฐ๋ธŒ์ฝ”์Šค] ๐ŸŽพํ…Œ๋‹ˆ์Šค ๋งˆ์ผ“ ๋ฐฑ์—”๋“œ ์—ฐ๊ฒฐํ•˜๊ธฐ(node.js, mariaDB)  (0) 2025.04.04
[๋ฐ๋ธŒ์ฝ”์Šค]๐ŸŽพํ…Œ๋‹ˆ์Šค ๋งˆ์ผ“ ๋งŒ๋“ค๊ณ  ๋ฐฐํฌํ•˜๊ธฐ(HTML,CSS,Netlify)  (0) 2025.04.03
'๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค/ํ”„๋กœ์ ํŠธ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐ๋ธŒ์ฝ”์Šค] BOOK STORE ํ”„๋กœ์ ํŠธ API ์„ค๊ณ„(2)
  • [๋ฐ๋ธŒ์ฝ”์Šค] BOOK STORE ํ”„๋กœ์ ํŠธ API ์„ค๊ณ„(1)
  • [๋ฐ๋ธŒ์ฝ”์Šค] ๐ŸŽพํ…Œ๋‹ˆ์Šค ๋งˆ์ผ“ ๋ฐฑ์—”๋“œ ์—ฐ๊ฒฐํ•˜๊ธฐ(node.js, mariaDB)
  • [๋ฐ๋ธŒ์ฝ”์Šค]๐ŸŽพํ…Œ๋‹ˆ์Šค ๋งˆ์ผ“ ๋งŒ๋“ค๊ณ  ๋ฐฐํฌํ•˜๊ธฐ(HTML,CSS,Netlify)
ํ‚ํ‚์ž‰
ํ‚ํ‚์ž‰
๋ฟŒ๋ก ํŠธ ๊ฐœ๋ฐœ์ž(์ง€๋ง์ƒ)์˜ ํ’€์Šคํƒ ๊ฐœ๋ฐœ์ž ๋„์ „๊ธฐ
  • ํ‚ํ‚์ž‰
    monicx.dev
    ํ‚ํ‚์ž‰
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (173)
      • ๐Ÿ–ฅ๏ธdevelop (2)
        • Github (2)
        • Frontend (4)
        • Backend (5)
        • Mobile (0)
        • CS (0)
        • Three.js (0)
        • Docker (2)
      • ๐Ÿ“šbook (9)
        • npm Deep Dive (4)
      • ๐Ÿ“•review (33)
        • ์ฑ… (24)
        • ํ–‰์‚ฌ (1)
        • ํšŒ๊ณ  (2)
      • โญproject (5)
        • petiary (2)
        • ๆšŽ่ฉ  (0)
        • ์ธํ„ด (2)
      • ๐Ÿ˜ถ‍๐ŸŒซ๏ธalgorithm (0)
      • ๐Ÿ’กtips (1)
      • ๐Ÿ˜Ždaily (10)
      • ๐Ÿ•น๏ธgame (0)
      • ๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค (87)
        • TIL (61)
        • ํ”„๋กœ์ ํŠธ (18)
        • ํšŒ๊ณ  (8)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
  • ๋งํฌ

    • ๋ฒจ๋กœ๊ทธ
  • ์ธ๊ธฐ ๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
ํ‚ํ‚์ž‰
[๋ฐ๋ธŒ์ฝ”์Šค] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ๋ง ํ”„๋กœ์ ํŠธ(ERD, DDL)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”