소프트웨어 개발에서 다수의 관계는 공통 데이터 모델 구조입니다. 특히 객체 지향 프로그래밍 (OOP)에 PHP를 사용할 때 이러한 관계를 처리하면 데이터 모델링의 유연성이 향상 될 수 있습니다. 예를 들어, 학생은 여러 과정을 수강 할 수 있으며 여러 학생이 코스를 수강 할 수도 있습니다. 이 양방향 다중 상관 관계는 다수의 관계의 전형적인 적용입니다.
먼저, 학생과 코스의 두 가지 핵심 개체에 대한 수업을 만들고자합니다. 각 클래스에는 ID 및 이름과 같은 기본 속성이 포함됩니다.
class Student {
private $id;
private $name;
// ...
}
class Course {
private $id;
private $name;
// ...
}
데이터베이스 관계는 PHP에서 직접 지원되지 않으므로 데이터베이스의 중간 테이블을 시뮬레이션하기 위해 중간 클래스를 만들어야합니다. 예를 들어, 학생과 과정을 연관시키기 위해 학생과 수업을 만들 수 있습니다.
class StudentCourse {
private $studentId;
private $courseId;
// ...
}
학생 선택 과정의 관계를 중간 테이블 ( 학생 _course 와 같은)에 삽입하면 다음 코드를 사용할 수 있습니다.
$studentId = 1;
$courseId = 2;
$query = "INSERT INTO student_course (student_id, course_id) VALUES (?, ?)";
$stmt = $pdo->prepare($query);
$stmt->execute([$studentId, $courseId]);
학생이 취하는 모든 과정을 얻으려면 코스 시트를 조인 작업을 통해 중간 테이블에 연결할 수 있습니다.
$studentId = 1;
$query = "SELECT course.* FROM course
JOIN student_course ON course.id = student_course.course_id
WHERE student_course.student_id = ?";
$stmt = $pdo->prepare($query);
$stmt->execute([$studentId]);
$courses = $stmt->fetchAll(PDO::FETCH_ASSOC);
코스에 대한 학생의 선택적 관계를 취소 해야하는 경우 삭제 작업을 수행하십시오.
$studentId = 1;
$courseId = 2;
$query = "DELETE FROM student_course WHERE student_id = ? AND course_id = ?";
$stmt = $pdo->prepare($query);
$stmt->execute([$studentId, $courseId]);
위의 방법을 통해 PHP에서 객체 지향 환경에서의 다수의 관계를 효과적으로 실현할 수 있습니다. 중간 테이블 구조를 통해 개발자는 학생과 업체와 같은 코스와 같은 코스 간의 관계를 쉽게 관리하여 운영 추가, 쿼리 및 삭제를 포함하여보다 유연한 데이터 모델을 구축 할 수 있습니다.