마지막 기능입니다
지금까지의 기능만드는 과정을 살펴보면
1. 설계함
2. 설계보고 (+설계 수정하면서) 프레임 만듦
3. 연결만 해보고 StatusCode 200 띄워보고
4. 기능 만듦 + db 만들기(테이블짜고 fk 연결 고민하고 등등,,)
5. 기능만들고 db연결함 sql문으로 작성함
6. 리팩토링
fk 제약조건 연결하는 방법

fk_적용할테이블_가져올테이블_이름
fk_orders(T)_users(T)_id(V)
Bookshop 스키마의 users 테이블에서

orders의 user_id값을
users의 id값에서 reference한다.



orders

orderedBooks

delivery

--
방금 insert한 데이터 pk 가져오는 방법
1. last_insert_id()
SELECT last_insert_id();
=> 하나의 세션에서만 insert를 잘 알려줌 동시에 여러개의 insert가 일어나면 힘들어함!!

2. max()
SELECT max(id) FROM Bookshop.orderedBook;
🚀트러블슈팅
테이블끼리 foreign키 막 연결하고 난 뒤에 값을 넣으려니 안됐다
Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`Bookshop`.`orderedBook`, CONSTRAINT `fk_orderedBook_orders_id` FOREIGN KEY (`order_id`) REFERENCES `orders` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION)
역시나 참조하려는 테이블에 해당 값이 없어서 그랬따~
-------

Cannot destructure property 'delivery' of 'req.body' as it is undefined.

json관련 어쩌구 솰라솰라,,해서 다시보니까

세상에 텍스트형태였다
json 포맷으로 호다닥 돌려주었어요

---

rror: Column 'total_quantity' cannot be null
at PromiseConnection.query (/Users/seoin/Desktop/KDT/BOOK-SHOP/node_modules/mysql2/lib/promise/connection.js:29:22)
at order (file:///Users/seoin/Desktop/KDT/BOOK-SHOP/controller/OrderController.js:19:40)
at Layer.handleRequest (/Users/seoin/Desktop/KDT/BOOK-SHOP/node_modules/router/lib/layer.js:152:17)
at next (/Users/seoin/Desktop/KDT/BOOK-SHOP/node_modules/router/lib/route.js:157:13)
at validate (file:///Users/seoin/Desktop/KDT/BOOK-SHOP/routes/orders.js:16:5)
at Layer.handleRequest (/Users/seoin/Desktop/KDT/BOOK-SHOP/node_modules/router/lib/layer.js:152:17)
at next (/Users/seoin/Desktop/KDT/BOOK-SHOP/node_modules/router/lib/route.js:157:13)
at Route.dispatch (/Users/seoin/Desktop/KDT/BOOK-SHOP/node_modules/router/lib/route.js:117:3)
at handle (/Users/seoin/Desktop/KDT/BOOK-SHOP/node_modules/router/index.js:435:11)
at Layer.handleRequest (/Users/seoin/Desktop/KDT/BOOK-SHOP/node_modules/router/lib/layer.js:152:17) {
code: 'ER_BAD_NULL_ERROR',
errno: 1048,
sql: "INSERT INTO orders (book_title,total_quantity,total_price,user_id,delivery_id) VALUES ('콩쥐팥쥐',NULL,NULL,1,3)",
sqlState: '23000',
sqlMessage: "Column 'total_quantity' cannot be null"
}
뇌를 뺴고있었는지,,,
firstQuantity라고 했다,,
totalQuantiry인데,,,

'PROJECT > [ 도서쇼핑몰 ]' 카테고리의 다른 글
| TRUNCATE와 SET FOREIGN_KEY_CHECKS =0,1; (0) | 2025.10.28 |
|---|---|
| 주문하기 flow 오류 Await Async로 잡자~(근데 난 원래 쓰고있었어서 오류가 안나는) (0) | 2025.10.27 |
| 장바구니 API 구현 (0) | 2025.10.24 |
| 좋아요 API COUNT(*) AS 별칭 EXIST (0) | 2025.10.24 |
| LEFT JOIN DATE_SUM (0) | 2025.10.24 |