테스트 사이트 - 개발 중인 베타 버전입니다

다른 DB에 있는 데이타 가져와서 입력하기??? 채택완료

지율아빠 7개월 전 조회 2,136

교육관련 홈페이지를 만들어서 운영중입니다.

 

기본적인 개념은 홍길돌이라는 사람이 1년동안 수강했던 교육이력을 보여줘야 하는데요...

교육과정은 A, B, C 세가지 유형으로 구분되어지며 각기 다른 게시판을 사용하고 있습니다.

 

진행방법은

- 교육담당자가 A유형에 신규 강좌개설

- 홍길동 개설된 강좌 수강신청 및 수강

- 교육담당자 수강확인

- 홍길동 수강 내용을 해당 교육과정(A, B, C 중 한 곳) DB에 기록

 

홍길동은 위와 같은 방법으로 B, C 유형에도 개설된 강좌를 수강할 수 있으며, 해당 수강내용은 각각의 DB에 기록됩니다.

 

제가 알고 싶은 것은,

홍길동이라는 사람에 대한 A, B, C 게시판 DB에 입력된 수강확인 내용을 별도의 게시판 DB에 자동으로 입력되게 할 수 있는 방법이 있는지입니다.

 

- A게시판 DB에 입력된 '2025년 HTML 기초과정' 수강내용(교육과정명, 수강여부 등)

- B게시판 DB에 입력된 '2025년 포토샵 중급과정' 수강내용(교육과정명, 수강여부 등)

- C게시판 DB에 입력된 '2025년 '3D MAX 기초과정' 수강내용(교육과정명, 수강여부 등)

- D게시판 DB : 홍길동의 A, B, C 게시판에 입력된 데이타를 가져와서 D데이타에 기록되게 하는 방법???

 

어떤 방법이 있을까요? 바쁘시겠지만 부탁드려 봅니다.

 

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 4개

채택된 답변
+20 포인트
glitter0gim
7개월 전

A, B, C게시판의 수강확인 데이터를 Trigger를 활용해

D게시판 DB에 자동으로 입력하는 방식으로, 각 게시판 DB는 독립적으로 운영되면서도,

홍길동의 전체적인 수강이력을 D게시판에서 효율적으로 통합 관리되게 ~

1. A, B, C게시판 테이블에 각각 AFTER INSERT와 AFTER UPDATE 트리거를 생성하여

  수강확인 데이터가 입력되거나 수정될 때마다 자동 실행.

2. 각 트리거는 홍길동의 수강 이력이 입력 또는 업데이트되는 순간,

  사용자의 ID, 교육과정명, 수강여부, 수강날짜를 D게시판 테이블로

  자동으로 복사/업데이트하는 SQL 쿼리를 실행.

3. D게시판 DB의 테이블 구조는 사용자ID, 사용자명, 교육유형(A, B, C),

  교육과정명, 수강여부, 수강날짜, 갱신일자 등이 적절히 관리되게 하시면~
 

bbs/d_course.php 파일을 만들어 table_d 데이터가 조회되도록 구현하시고,

트리거 SQL은 /adm/trigger.sql에 두어 관리자만 실행하는 것이 최적일 듯합니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

지율아빠
7개월 전
감사합니다. 말씀하신대로 한번 해보도록 하겠습니다....
g
glitter0gim
7개월 전
=== 관리자만 트리거 실행 가능 (adm/trigger_exec.php) ===
<?php
include_once('../config.php'); // DB 연결

if (!defined('_ADMIN_')) {
die('Access Denied');
}

$sql = file_get_contents('trigger.sql');

if (mysqli_multi_query($conn, $sql)) {
echo "트리거가 성공적으로 적용되었습니다.";
} else {
echo "트리거 적용 실패: " . mysqli_error($conn);
}
?>

=== 일반 회원이 접근할 D 게시판 데이터 조회 파일 (bbs/d_course.php) ===
<?php
include_once('../config.php'); // DB 연결 설정

// 일반 회원도 접근 가능
$result = mysqli_query($conn, "SELECT * FROM table_d ORDER BY last_updated DESC");

echo "<table border='1'>
<tr>
<th>이름</th>
<th>교육 유형</th>
<th>교육 과정</th>
<th>수강 여부</th>
<th>완료 날짜</th>
</tr>";

while($row = mysqli_fetch_assoc($result)) {
echo "<tr>
<td>".$row['user_name']."</td>
<td>".$row['course_type']."</td>
<td>".$row['course_name']."</td>
<td>".($row['is_completed'] ? '완료' : '미완료')."</td>
<td>".$row['completed_date']."</td>
</tr>";
}
echo "</table>";
?>

댓글을 작성하려면 로그인이 필요합니다.

cdisk1
7개월 전

1. 수강내용 master table 생성

2. 수강자 master table 생성

 

수강내용 key를 수강자 master table에 매칭 시키면, 해결되지 않을까 합니다.

 

table 설계를 다시 해야 할거 같습니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

7개월 전

게시판 매칭되는 값들로 해당 데이터 불러와서 넣으면 되는거 아닌가요? 질문만으로는 정확한 의도를 알기 힘든거 같습니다. 쿼리문에 대해서 알지를 못하시는걸까요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

지율아빠
7개월 전
부끄럽지만... 샘플 예시를 하나만 들어주시면 감사하겠습니다.

댓글을 작성하려면 로그인이 필요합니다.

플라이
7개월 전

A,B,C를 별도로 D에 기록하시려는 의도가 무엇일까요?
수강내역을 한번에 보고자 하시는거라면 해당 게시판을 전체적으로 불러오도록 하시면 되지 않을까 싶은데요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

지율아빠
7개월 전
개인별로는 말씀하신 것처럼 가능합니다만.... 관리자 입장에서 전체 수강생의 교육 이수현황을 보고싶어서 그렇습니다.

말씀하신 것처럼 여러개 게시판의 데이타를 불러와서 하기에는 전체 수강생(3000명 정도)이 너무 많아서요... 시스템에 맣은 부담을 가져오더라구요.......
플라이
7개월 전
그렇다면 A,B,C에 따른 회원별 기준으로 D 게시판에 기록을 하도록 처리한후
A,B,C 백단에서 반영시마다 변경 반영하도록 기능 구현을 하여 적용하도록 해야 하지 않나 싶습니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인