2018년 8월 3일
오늘 한 일:
- 데이터베이스: mySQL CRUD
- 배민찬 step3 구현 완료
내일 할 일:
- 배민찬 step3 PR
- 스타일링
- 리팩토링
- 데이터베이스 mySQL JOIN실습
데이터베이스
CRUD
- create:
INSERT INTO USER(name, password) VALUES('mando', 'cyd');
- read:
select * from user
- update:
UPDATE user SET id = 100 WHERE name='mando';
- delete:
DELETE FROM user WHERE userid=1;
CREATE
INSERT INTO table_name VALUES(…)
INSERT INTO table_name (NAME) VALUES ('MANDO'), ('CRONG'), …
READ
select name from user where id = 3
select *
,스키마
=data
: 열(column) 선택where *
: 행(row) 선택
UPDATE
UPDATE table_name SET NAME='MANDO' WHERE …
DELETE
DELETE FROM table_name WHERE …
참고
INSERT와 UPDATE 문법이 비슷
SELECT 와 DELETE 문법이 비슷
기타 명령어
show tables
: 테이블을 보여줌
describe table_name
: 해당 테이블의 정보를 보여줌
drop table [if exists] table_name
: 해당 테이블을 삭제
ALTER TABLE COURSE ADD COLUMN CNAME VARCHAR(64) AFTER CID;
스키마 추가
배민찬
리뷰 반영 리팩토링
1. 이름 규칙 변경
- 엘리먼트
e
- 바인드 된 함수
handle
2. 변동이 되는 데이터만 model에
- 지금 model에 들어가는 메뉴 데이터는 한 번 렌더링 되면 더이상 변경될 일이 없는 데이터
- 이런 static 데이터는 모델이 아닌 다른곳에서 관리하는게 좋다(data.js와 같이)
- view에서 이 데이터는 렌더할 때는 index에서 직접 넣어주도록 함
import {menuData} from './data.js';
const menuNavigation = new MenuNavigation({
menuNavigation: document.querySelector('nav'),
template: template
});
menuNavigation.render(menuData);
- menuData를 생성자에 넣지 않은 이유
- 생성자는 속성 초기화만 하도록 정함. menuData는 일회용 데이터이기 때문에 속성에 보관할 필요가 없었음
- 따라서 index.js에서 render메소드를 통해 데이터를 넣어줬다
Q. Template가 특정 UI에 종속적이지 않고 범용적이려면 어떻게 해야할까?
TAB UI
ajax 통신을 이용한 방법을 사용
설계
flow
- 버튼을 누른다
- 해당 버튼의 정보를 AJAX를 통해 서버에 보낸다
- 받아온 데이터를 컨트롤러에게 넘겨준다
- 컨트롤러는 렌더링될 뷰를 찾아서 받아온 정보와 함께 렌더링을 시켜준다
class bestDishesNavigation {
bindSelectBestDishesCategory(handler) {}
}
clsss Controller {
selectBestDishesCategory() {}
}
class bestDishedView {
render() {}
}