루젠소프트 로고

216.73.216.204 TODAY : 3,439

PHP 강의

 > 

PHP - 중급

📚 PHP 중급 - 2주차: 회원가입 및 로그인 시스템 구현 - 01 데이터베이스 스키마 설계 (사용자 테이블)

📚 PHP 중급 - 2주차: 회원가입 및 로그인 시스템 구현 - 01 데이터베이스 스키마 설계 (사용자 테이블)
평점 10.0 라이센스 free
사용자평점 10.0 운영체제
다운로드 1 파일크기 0
제작사 LUZENSOFT 등록일 2025-07-14 13:33:17
조회수 9
- 설명

📚 PHP 중급 - 2주차: 회원가입 및 로그인 시스템 구현 - 01 데이터베이스 스키마 설계 (사용자 테이블)




이번 포스팅에서는 #PHP 중급 과정의 두 번째 주차 학습 내용인 #회원가입 및 #로그인 시스템 구현을 위한 첫 단계로, #데이터베이스 #스키마 설계에 대해 알아보겠습니다. 특히, 사용자 정보를 저장할 사용자 테이블(#UserTable)의 구조를 자세히 살펴보겠습니다.




사용자 테이블 설계의 중요성

uploadImage


안정적이고 효율적인 #회원 관리 시스템을 구축하기 위해서는 잘 설계된 사용자 테이블이 필수적입니다. 사용자 테이블은 모든 회원 정보를 담는 핵심적인 부분이므로, 데이터의 무결성, 보안, 그리고 확장성을 고려하여 신중하게 설계해야 합니다.




사용자 테이블 (users) 스키마

uploadImage


다음은 users 테이블의 권장 스키마입니다. 각 필드에 대한 설명과 함께 예시 SQL을 제공합니다.

필드명 (Column Name)

데이터 타입 (Data Type)

제약 조건 (Constraints)

설명 (Description)

id

INT

PRIMARY KEY, AUTO_INCREMENT

사용자의 고유 식별자

username

VARCHAR(50)

NOT NULL, UNIQUE

사용자의 로그인 아이디 (중복 불가)

password

VARCHAR(255)

NOT NULL

사용자의 비밀번호 (해시 처리)

email

VARCHAR(100)

NOT NULL, UNIQUE

사용자의 이메일 주소 (중복 불가)

created_at

DATETIME

DEFAULT CURRENT_TIMESTAMP

사용자 계정 생성 시간

updated_at

DATETIME

DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

사용자 정보 최종 수정 시간

Sheets로 내보내기




스키마 설명




  • id: 각 사용자를 고유하게 식별하는 기본 키입니다. AUTO_INCREMENT를 사용하여 새로운 사용자가 추가될 때마다 자동으로 1씩 증가하는 값을 가집니다.

  • username: 사용자가 로그인 시 사용할 아이디입니다. UNIQUE 제약 조건을 통해 중복된 아이디 생성을 방지합니다. #VARCHAR(50)은 최대 50자까지의 문자열을 저장할 수 있음을 의미합니다.

  • password: 사용자의 비밀번호를 저장하는 필드입니다. 보안을 위해 비밀번호는 반드시 #해싱(Hashing)하여 저장해야 합니다. #VARCHAR(255)는 해싱된 비밀번호를 저장하기에 충분한 공간을 제공합니다.

  • email: 사용자의 이메일 주소입니다. UNIQUE 제약 조건을 통해 중복된 이메일 등록을 방지하고, 비밀번호 찾기 등의 기능에 활용될 수 있습니다.

  • created_at: 사용자 계정이 생성된 시간을 기록합니다. DEFAULT CURRENT_TIMESTAMP를 사용하여 레코드가 생성될 때 자동으로 현재 시간이 기록됩니다.

  • updated_at: 사용자 정보가 마지막으로 수정된 시간을 기록합니다. DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP를 사용하여 레코드가 업데이트될 때마다 자동으로 현재 시간이 갱신됩니다.




SQL 예시 (MySQL)


uploadImage


SQL

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL UNIQUE,
    password VARCHAR(255) NOT NULL,
    email VARCHAR(100) NOT NULL UNIQUE,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);



위 SQL 문을 사용하여 users 테이블을 생성할 수 있습니다. 데이터베이스 관리 도구(예: phpMyAdmin, MySQL Workbench) 또는 명령줄을 통해 이 SQL을 실행하세요.