'개인프로젝트'에 해당되는 글 11건

  1. 2019.07.17 테이블 외래키 설정
  2. 2019.07.17 개인 프로젝트 기능 리스트
  3. 2019.07.17 프로젝트 관련 테이블 생성

테이블 외래키 설정

개인프로젝트 2019. 7. 17. 16:23

-각 테이블별 외래키(FK) 설정-


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
-- MEMBER_REPLY 테이블, MEMBER_BOARD 테이블, MEMBER_BEST_BOARD 테이블을 다시 생성 기본키만 처음에 추가하고 
-- 외래키는 테이블 생성후 테이블 내용을 변경해서 삽입할 예정
 
--베스트 게시물 테이블 (속성 2개짜리도 삭제)
drop table BEST_BOARD cascade constraints;
 
 
--어제는 회원게시판(일반게시물)에 있는 추천수가 회원게시판(베스트게시물)과 연동된다고 생각해서 테이블을 정규화시켜서
--나누려고 생각했었는데, 확인해보니 게시물이 복사될때 추천수는 복사되지 않고 별개로 된다는 것을 확인해서 
--추가할 부분을 추가하고, PK와 FK가 꼬였기 때문에 다시 테이블을 생성하였다.
 
create table MEMBER_REPLY(
rno number(10not null primary key,
user_id varchar(20not null,
member_bno number(10not null,
r_content varchar(200not null,
reg_date date default sysdate,
join_date date default sysdate,
recommend number(10not null
);
 
 
CREATE TABLE MEMBER_BOARD(
member_bno number(20not null primary key,
user_id varchar(20not null,
reg_date date default sysdate,
viewcnt number(20not null,
title varchar(20not null,
rcnt number(10not null,
content varchar(400not null,
recommend number(10not null
);
 
 
CREATE TABLE MEMBER_BEST_BOARD(
best_bno NUMBER(10NOT NULL PRIMARY KEY,
member_bno NUMBER(10NOT NULL,
user_id VARCHAR(20NOT NULL,
reg_date DATE default sysdate,
viewcnt NUMBER(10NOT NULL,
title VARCHAR(20NOT NULL,
rcnt NUMBER(10NOT NULL,
content VARCHAR(400NOT NULL,
recommend number(10NOT NULL
);
 
 
--각 테이블별 외래키 생성
 
--댓글 테이블의 ID와 게시글번호를 외래키로 설정
ALTER TABLE MEMBER_REPLY
ADD CONSTRAINT user_id FOREIGN KEY (user_id)
REFERENCES MEMBER(user_id);
 
ALTER TABLE MEMBER_REPLY
ADD CONSTRAINT member_bno FOREIGN KEY (member_bno)
REFERENCES MEMBER_BOARD(member_bno);
 
 
--회원게시판(일반게시물) 테이블의 ID를 외래키로 설정
ALTER TABLE MEMBER_BOARD
ADD CONSTRAINT user_id2 FOREIGN KEY (user_id)
REFERENCES MEMBER(user_id);
 
 
--회원게시판(베스트게시물) 테이블의 ID를 외래키로 설정해서 MEMBER 테이블을 참조하도록 설정
ALTER TABLE MEMBER_BEST_BOARD
ADD CONSTRAINT user_id3 FOREIGN KEY (user_id)
REFERENCES MEMBER(user_id);
 
 
--회원게시판(베스트게시물) 테이블의 member_bno를 외래키로 설정해서 MEMBER_BOARD 테이블을 참조하도록 설정
ALTER TABLE MEMBER_BEST_BOARD
ADD CONSTRAINT member_bno2 FOREIGN KEY (member_bno)
REFERENCES MEMBER_BOARD(member_bno);
 
 
--관리자 테이블, 공지게시판 테이블, 공지게시판 댓글 테이블의 FK 제약조건을 설정
ALTER TABLE ADMIN_BOARD
ADD CONSTRAINT admin_id FOREIGN KEY (admin_id)
REFERENCES ADMIN(admin_id);
 
 
--데이터타입이 다르므로 실행 오류가 발생한다. 따라서 데이터타입을 바꿔주어야 한다.
ALTER TABLE ADMIN_BOARD_REPLY
ADD CONSTRAINT bno FOREIGN KEY (bno)
REFERENCES ADMIN_BOARD(bno);
 
 
--댓글 게시판 BNO의 타입을 변경 (참조할 컬럼의 데이터타입과 일치하도록..)
ALTER TABLE ADMIN_BOARD_REPLY modify(bno number(10));
 
 
--공지게시판의 댓글 테이블에 ID를 회원 테이블의 ID를 참조하도록 외래키로 설정
ALTER TABLE ADMIN_BOARD_REPLY
ADD CONSTRAINT user_id4 FOREIGN KEY (user_id)
REFERENCES MEMBER(user_id);
 
cs


:

개인 프로젝트 기능 리스트

개인프로젝트 2019. 7. 17. 14:18


로그인 - 아이디, 비밀번호 찾기, 자동 로그인 설정 (세션사용)


ㄴ아이디 찾기 : 이메일을 입력하고 "확인" 버튼을 클릭하면 이메일이 전송되고, 받은 메일함을 확인해서 아이디를 확인하면 된다.


ㄴ비밀번호 찾기 : 비밀번호를 입력하고 "확인" 버튼을 클릭하면 받은 메일함을 확인해서 메일에 있는 링크를 주소창에 복사해서 이동한 후에

넘어간 페이지에서 비밀번호를 변경하면 된다.




회원가입 - 회원가입시 휴대폰 인증, 이메일 인증




회원 게시판 - 기본 게시판 기능 (페이징, 댓글) + 게시글과 댓글에 추천 가능하게 하기 + 게시글 제목옆에 댓글수가 표시되도록 함




베스트 게시물 게시판 - 회원 게시판에 있는 게시글 중에 추천수가 10이 넘어가는 게시글만 댓글창 쪽에 추천수 10이 넘었을때를 기준으로

  복사되었다는 말과 함께 베스트게시판에 글이 복사된다.

  (단, 댓글은 그대로 복사되고, 서로 연동되어서 한쪽 게시글에 댓글이 생기면 다른쪽 게시판의 글에도 댓글이 생긴다.

   하지만 조회수와 추천수는 서로 공유하지 않는다.)

  

기타 기능은 회원 게시판과 동일


                               



공지사항 게시판 - 일반 회원은 댓글만 달 수 있고, 관리자만 글을 쓰는 것이 가능한 게시판, 나머지는 회원 게시판과 동일




관리자 관련 기능 - 공지사항 게시판 글쓰기, 게시글 삭제, 댓글 삭제, 회원 강제 탈퇴 기능 



================================추가할만한 것들================================


아이디 중복 확인 https://jamong-icetea.tistory.com/68


네이버 API 사용해보기 https://thiago6.tistory.com/44?category=827160





:

프로젝트 관련 테이블 생성

개인프로젝트 2019. 7. 17. 12:01






먼저 다른테이블과 중복될 수 있으니 다른 테이블과 관련 제약조건들을 전부다 삭제함.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
drop table attach cascade constraints;
 
drop table admin cascade constraints;
 
drop table board cascade constraints;
 
drop table cart cascade constraints;
 
drop table memo cascade constraints;
 
drop table product cascade constraints;
 
drop table reply cascade constraints;
 
drop table MEMBER5 cascade constraints;
 
drop table MEMBER8 cascade constraints;
 
drop table MEMADF cascade constraints;
 
drop table MEMADFA2 cascade constraints;
 
drop table MEMBER10 cascade constraints;
 
drop table TBL_LOOPTEST cascade constraints;
 
drop table TBL_MESSAGE cascade constraints;
 
drop table TBL_USER cascade constraints;
 
drop table USERS cascade constraints;
cs


사진의 테이블 설계도 처럼 테이블을 생성



MEMBER 테이블 생성 (회원 정보)

1
2
3
4
5
6
7
create table member(
user_id varchar(20not null PRIMARY KEY,
member_pass number(20not null,
e_mail varchar(100not null,
join_date date default sysdate
);
cs




MEMBER_BOARD 테이블 생성 (회원게시판-일반게시물) (FK는 이따 설정)

1
2
3
4
5
6
7
8
9
10
CREATE TABLE MEMBER_BOARD(
bno number(20not null primary key,
recommend varchar(20not null,
user_id varchar(20not null,
reg_date date default sysdate,
viewcnt number(20not null,
title varchar(20not null,
rcnt number(20not null,
content varchar(200not null
);
cs




MEMBER_REPLY 테이블 생성 (회원 게시판 댓글)

1
2
3
4
5
6
7
8
9
create table MEMBER_REPLY(
rno number(10not null primary key,
bno number(10not null,
user_id varchar(20not null,
r_content varchar(200not null,
reg_date date default sysdate,
join_date date default sysdate,
recommend number(10not null
);
cs




BEST_BOARD 테이블 생성 (베스트 게시물) (기본키를 게시글번호와 추천수로 설정 - 복합키) (FK는 이따 설정)

1
2
3
4
5
CREATE TABLE BEST_BOARD(
bno NUMBER(10not null,
recommend NUMBER(10not null,
PRIMARY KEY (bno, recommend)
);
cs




MEMBER_BEST_BOARD 테이블 생성 (회원게시판-베스트게시물) (FK는 이따 설정)

1
2
3
4
5
6
7
8
9
10
CREATE TABLE MEMBER_BEST_BOARD(
bno NUMBER(10NOT NULL PRIMARY KEY,
recommend VARCHAR(20NOT NULL,
user_id VARCHAR(20NOT NULL,
reg_date DATE default sysdate,
viewcnt NUMBER(10NOT NULL,
title VARCHAR(20NOT NULL,
rcnt NUMBER(10NOT NULL,
content VARCHAR(400NOT NULL
);
cs




ADMIN 테이블 생성 (관리자 정보)

1
2
3
4
5
6
CREATE TABLE ADMIN (
admin_id varchar(20not null primary key,
admin_pass number(20not null,
e_mail varchar(100not null,
reg_date date default sysdate
);
cs




ADMIN_BOARD 테이블 생성 (공지 게시판)

1
2
3
4
5
6
7
8
9
create table ADMIN_BOARD(
bno number(10not null primary key,
admin_id varchar(20not null,
reg_date date default sysdate,
viewcnt number(10not null,
title varchar(20not null,
rcnt number(10not null,
content varchar(400not null
);
cs




ADMIN_BOARD_REPLY 테이블 생성 (공지 게시판 댓글)

1
2
3
4
5
6
7
8
9
create table ADMIN_BOARD_REPLY(
rno number(10not null primary key,
user_id varchar(20not null,
bno varchar(20not null,
r_content varchar(200not null,
reg_date date default sysdate,
join_date date default sysdate,
recommend number(10not null
);
cs




: