Database 복습 (3)

dosiri_·2021년 9월 16일
0

복습

목록 보기
7/14
post-thumbnail

0916

1. image 서버 구축

전체적인 흐름은 다음과 같다.

react를 이용하여 웹페이지를, express를 설치하여 서버를 만들고 서로 통신
웹에서 이미지, 성별, 이름을 적고 제출하는 기능 구현
제출 버튼을 누르면 S3에 이미지를 업로드 하고
동시에 이미지 URL과 기타 데이터를 MySQL에 저장

1) React

  • 기능별로 Page / Component / Container 로 풀더를 나누어 작성

  • 폴더구성

    App.js
    page - Home / Upload
    container - HomeContainer / UploadContainer
    component - HomeComponent / UploadComponent

위에서 부터 밑으로 내려가는 구조

1) App.js에서는 Home과 Upload를 임포트하여 보여줌

2) Page의 Home과 Upload 에서는 각각의 Container을 임포트해서 return 시켜줌

3) Container 은 웹에서의 다양한 기능 및 통싱을 구현. rutrun값에 Componet를 임포트하여 태그 안에 구현한 기능들을 넣어 return 시켜줌

4) Component 는 css 및 기능들의 배치를 담당!

2) Server

Database 복습 (2) 에서 구축한 express 환경 그대로 사용.
라우터와 컨트롤러를 분리하고 컨트롤러에서 MySQL로 query를 날려 데이터 조회, 업로드 및 수정 삭제

2. MySQL PK 와 FK

1) Primary Key ( 기본키 )

  • 다른 항목과 중복 될 수 없는 단일 값
  • PK는 절대로 Null 값을 가질 수 없다
  • 하나 이상의 컬럼이 그룹화되어 PK로 사용 가능
  • 고유 인덱스가 자동으로 생성된다.
  • 테이블은 기본키를 하나만 가질 수 있다.

2) Foreign Key ( 외래키 )

  • 테이블 생성 시 FK 정의
  • FK가 정의된 테이블은 자식 테이블이 된다
  • 참조되는 테이블을 부모 테이블이라고 한다
  • 부모 테이블은 미리 생성되어야 함
  • FK가 참조하는 키는 부모 테이블에 존재해야만 한다.
  • 부모테이블은 FK로 인하여 삭제가 불가능하다.

3) 외래 키 지정 시 수정/ 삭제 옵션

  • cascade:

    개체를 변경 / 삭제 할 때 다른 개체가 변경 / 삭제할 개체를 참조하고 있을 경우
    함께 변경 / 삭제

    -> 부모 변경 시 자식도 함께 변경

  • restrict:

    개체를 변경 / 삭제 할 때 다른 개체가 변경 / 삭제할 개체를 참조하고 있을 경우
    개체의 변경 / 삭제 취소(제한)

    -> 자식이 있을 시 부모의 변경 제한

  • no action:

    개체를 변경 / 삭제 할 때 다른 개체가 변경 / 삭제할 개체를 참조하고있는 경우
    변경 / 삭제할 개체만 변경 / 삭제되고 참조하고있는 개체는 변동 없음

    -> 부모 변경 시 자식은 그대로

  • set null:
    개체를 변경 / 삭제할 때 다른 개체가 변경 / 삭제할 개체를 참조하고있을 경우
    참조하고 있는 값을 NULL로 세팅

    -> 부모 변경 시 자식은 Null값

0개의 댓글