하나의 게시글에 여러 개의 태그를 등록할 수 있게 설정해 주려하는데,
구글링해봐도 모두들 tag테이블을 두 개나 사용하고 있었다..!!!
아니 이게 말이 되나 ? 누가 봐도 board 테이블과 tag 테이블 두개 만들어서 1:N 관계로 해주면 되는 것이 아니였나???
그래서 나의 애증관계인 gpt에게 물어봐서 왜 태그 관련 테이블이 하나 더 필요한지 물어보게되었다..!! 뚜둥
내가 이해한 대로 기록하자면
board 테이블 : 게시글 작성하는 테이블
board_tag 테이블 : board 테이블과 tag 테이블의 관계를 나타냄 (board의 id와 board_tag의 id가 저장)
tag : 게시글에서 작성하는 실제 태그 내용들이 저장 (board_tag의 id와 저장될 name컬럼 필요)
(board_tag 테이블과 tag 테이블의 명이 반대로 되었으면 덜 헷갈렸으려나...)
예를 들어서
1번 게시글의 태그 - 사과, 바나나, 프론트엔드
2번 게시글의 태그 - 프론트엔드, 백엔드, 데이터분석
이라면
tag테이블에는 실제로 내가 기록한 태그 내용들이 저장된다.
tag_id | name |
A | 사과 |
B | 바나나 |
C | 프론트엔드 |
D | 백엔드 |
E | 데이터분석 |
board_tag테이블에는 tag_id와 board_id로 관계 저장된다.
board_id | tag_id |
1 | A |
1 | B |
1 | C |
2 | C |
2 | D |
2 | E |
이렇게 태그를 나눠서 관리하면
- 중복 태그 방지: 태그 테이블을 사용하면 동일한 태그가 여러 게시글에서 사용될 때 중복 저장되지 않고, 태그 테이블에서 공유될 수 있습니다. 이로써 데이터의 일관성을 유지하고 저장 공간을 절약할 수 있습니다.
- 태그 관리 용이성: 태그 테이블을 사용하면 태그를 쉽게 추가, 수정, 삭제할 수 있습니다. 게시글에서 사용하는 태그의 리스트를 관리하기가 용이해집니다.
- 태그 검색 및 분류: 태그 테이블을 사용하면 특정 태그를 가진 게시글을 검색하거나, 태그별로 게시글을 분류하는 등의 작업을 쉽게 수행할 수 있습니다.
이러한 이점이 있다고 한다~
사실 쓰면서도 헷갈린다;; 흠냐링;;
직접 DB 만들어서 느껴봐야지 완벽 이해 할 것 같다;;
티스토리는 진짜 개발자를 위한게 분명한게 표를 마우스로 크기 조절을 못하고 html에서 수정해줘야한다 아오귀찮아
하지만 나 딩딩쓰 안한다
모양이 무엇이 중요허냐 내용이 중요허지~
'DataBase' 카테고리의 다른 글
[JPA][DataBase] 날짜형식을 LocalDateTime, Timestamp으로 설정했는데 DB에 초까지 저장이 안되는 경우 해결방법 (0) | 2023.07.29 |
---|---|
[DataBase] 누구인가? 누가 나의 데이터베이스를 가져갔는가 (0) | 2023.07.20 |
[Oracle] PL/SQL 스토어드 프로시저(Stored Procedure) 간단 정리 + 내가 자주내는 오류 녀석들 (0) | 2023.04.03 |
[Oracle] Foreign key 제약사항 (0) | 2023.03.28 |
[Oracle] insert에 대하여 알아보자 (0) | 2023.03.28 |