Project

[Spring Blog]스프링 블로그 - 논리적 설계, 물리적 설계

빙응이 2024. 3. 25. 17:13

[Spring Blog]스프링 블로그 - 개념적설계 (tistory.com)

 

[Spring Blog]스프링 블로그 - 개념적설계

📝개념적 설계 요구사항 만들기 게시판에 필요할 것 같은 기능을 나열해보자 회원이 게시글 작성 회원가입 회원이 댓글 쓰기 회원이 추천 해주기 게시글 별 카테고리 게시글에 파일 올리기 🚩

quddnd.tistory.com

📝논리적 설계 

논리적 설계 규칙을 적용해보자

 

🚩 규칙 1. 모든 개체는 릴레이션으로 변환한다.

No. 개체 릴레이션
1 회원 회원(회원아이디, 비밀번호, 전화번호)
2 게시글 게시글(게시글번호, 작성자, 제목, 내용, 작성날짜, 조회수, 추천수, 카테고리)
3 파일 파일(파일번호, 저장파일이름, 원본파일이름, 파일경로, 파일확장자명)

 

🚩 규칙 2. 다대다 관계는 릴레이션으로 변환한다. 

No. 관계 이름 관련된 개체 목록 관계 유형 관계 설명 속성
1 글을 관리  회원(선택), 게시글(필수) 1:N  
2 댓글을 작성 회원(선택), 게시글(선택) N:M 댓글 번호, 회원아이디, 내용
3 추천을 한다 회원(선택), 게시글(선택) N:M 추천 번호
4 파일을 첨부한다. 게시글(선택), 파일(필수) 1:N  
No. 개체 릴레이션
1 댓글 댓글(댓글 번호, 회원아이디, 게시글번호, 내용)
2 추천 추천(추천 번호, 회원아이디, 게시글번호)

 

🚩 규칙 3. 일대다 관계는 외래키로 표현한다. 

No. 관계 이름 관련된 개체 목록 관계 유형 관계 설명 속성
1 글을 관리  회원(선택), 게시글(필수) 1:N  
2 댓글을 작성 회원(선택), 게시글(선택) N:M 댓글 번호, 회원아이디, 내용
3 추천을 한다 회원(선택), 게시글(선택) N:M 추천 번호
4 파일을 첨부한다. 게시글(선택), 파일(필수) 1:N  
No. 개체 릴레이션
1 게시글 게시글(게시글번호, 작성자, 제목, 내용, 작성날짜, 조회수, 추천수, 카테고리, 회원아이디)
2 파일 파일(파일번호, 저장파일이름, 원본파일이름, 파일경로, 파일확장자명, 게시글번호)

 

🚩 무결성 제약 조건

개체 무결성 제약 조건
회원 1. 회원의 아이디는 고유해야한다.(Unique 제약조건)
2. 비밀번호는 null이 아니어야 한다.
3. 전화번호는 null이 아니어야 한다.
게시글 1. 게시글 번호는 고유해야 한다.
2. 작성자는 등록된 회원이어야 한다.(외래키 제약 조건)
3. 제목과 내용은 null이 아니어야 한다.
4. 작성 날짜는 현재 날짜 및 시간으로 자동 생성되어야 한다.
5. 조회수, 추천수는 0 이상이어야 한다.
6. 카테고리는 유효한 값을 가져야 한다.
파일  1. 파일 번호는 고유해야 한다.
2. 저장 파일 이름, 원본 파일 이름, 파일 경로, 파일 확장자 명은 null이 아니어야 한다.
3. 게시글 번호는 등록된 게시글 번호여야 한다.(외래키 제약 조건)
추천 1. 추천 번호는 고유해야 한다.
2. 회원 아이디와 게시글 번호는 등록된 회원 아이디와 게시글 번호여야 한다.(외래키 제약 조건)
댓글 1. 댓글 번호는 고유해야 한다.
2. 회원 아이디와 게시글 번호는 등록된 회원 아이디와 게시글 번호여야 한다.(외래키 제약 조건)
3. 내용은 null이 아니어야 한다. 

 

📝물리적 설계

회원
속성 칼럼 데이터 타입 널 허용 여부 기본 값 제약조건
회원아이디 member_id VARCHAR N   PK  
비밀번호 member_password VARCHAR N      
전화번호 member_tel VARCHAR N      
게시글
속성 칼럼 데이터 타입 널 허용 여부 기본 값 제약조건
게시글번호 board_id BIGINT N   PK  
회원아이디 member_id VARCHAR N   FK  
제목 board_title VARCHAR N      
내용 board_content VARCHAR N      
조회수 board_views BIGINT N 0    
추천수 board_recommend BIGINT N 0    
날짜 board_updateTime TIMESTAMP N      
카테고리  board_categories VARCHAR N      
파일
속성 칼럼 데이터 타입 널 허용 여부 기본 값 제약조건
파일번호 Attachment_id BIGINT N   PK  
게시글번호 board_id BIGINT N   FK  
원본이름 Attachment_origin VARCHAR N      
저장이름 Attachment_store VARCHAR N     UNIQUE
파일경로  Attachment_path VARCHAR N      
파일확장자 Attachment_extansion VARCHAR N      
댓글
속성 칼럼 데이터 타입 널 허용 여부 기본 값 제약조건
댓글번호 comment_id BIGINT N   PK  
게시글번호 board_id BIGINT N   FK  
회원아이디 member_id VARCHAR N   FK  
내용 comment_content VARCHAR N      
추천
속성 칼럼 데이터 타입 널 허용 여부 기본 값 제약조건
추천번호 recommend_id BIGINT N   PK  
게시글번호 board_id BIGINT N   FK  
회원아이디 member_id VARCHAR N   FK