반응형
/**
* 테이블 확인 및 생성
*/
// 캐릭터 테이블 확인 및 생성
if (!sql_query("DESCRIBE {$g5['character_profiles']}", false)) {
echo "테이블 '{$g5['character_profiles']}'이 없습니다. 생성 중...\n";
$sql_character_table = "
CREATE TABLE `{$g5['character_profiles']}` (
`ch_id` INT AUTO_INCREMENT PRIMARY KEY, -- 캐릭터 고유 ID
`mb_id` VARCHAR(50) NOT NULL, -- 사용자 ID
`ch_name` VARCHAR(255) NOT NULL, -- 캐릭터 이름
`ch_image` VARCHAR(255) DEFAULT NULL, -- 캐릭터 대표 이미지
`ch_description` TEXT DEFAULT NULL, -- 캐릭터 설명
`ch_extra` TEXT DEFAULT NULL, -- 추가 정보 (직렬화된 데이터)
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='캐릭터 관리 테이블';
";
sql_query($sql_character_table, true);
echo "테이블 '{$g5['character_profiles']}' 생성 완료.\n";
}
// else {
// if ($is_admin) {
// echo "테이블 '{$g5['character_profiles']}'이 이미 존재합니다.\n";
// }
// }
// 페어 테이블 확인 및 생성
if (!sql_query("DESCRIBE {$g5['character_pairs']}", false)) {
echo "테이블 '{$g5['character_pairs']}'이 없습니다. 생성 중...\n";
$sql_pairs_table = "
CREATE TABLE `{$g5['character_pairs']}` (
`pc_id` INT AUTO_INCREMENT PRIMARY KEY, -- 페어 고유 ID
`ch_id_1` INT NOT NULL, -- 첫 번째 캐릭터 ID
`ch_id_2` INT NOT NULL, -- 두 번째 캐릭터 ID
`pair_description` TEXT DEFAULT NULL, -- 페어링 설명 (예: 관계 유형)
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY `unique_pair` (`ch_id_1`, `ch_id_2`), -- 중복 방지
FOREIGN KEY (`ch_id_1`) REFERENCES `{$g5['character_profiles']}` (`ch_id`) ON DELETE CASCADE,
FOREIGN KEY (`ch_id_2`) REFERENCES `{$g5['character_profiles']}` (`ch_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='캐릭터 페어링 테이블';
";
sql_query($sql_pairs_table, true);
echo "테이블 '{$g5['character_pairs']}' 생성 완료.\n";
}
// else {
// echo "테이블 '{$g5['character_pairs']}'이 이미 존재합니다.\n";
// }
위와 같이 테이블을 생성했는데 아마 게시판 개발을 본격적으로 하면서 구조가 좀 더 달라질 수 있을 듯...
반응형
'TIL' 카테고리의 다른 글
| [Mastodon] 마스토돈 서버 개설 후 로컬에 세팅하기 (0) | 2025.10.18 |
|---|---|
| [php] 그누보드 위키 형태의 게시판 만들기 (0) | 2025.03.14 |
| [php] 캘린더 개발 - 2 (0) | 2024.12.22 |
| [php] 캘린더 개발 - 1 (1) | 2024.11.20 |
| [dart] RenderBox was not laid out / Failed assertion: line 2164 pos 12: 'hasSize' 에러 (3) | 2024.09.15 |