본문 바로가기

SQL

사용자 프로필 테이블 생성: 사용자 프로필 정보를 저장하기 위한 테이블을 생성합니다.

반응형

사용자 프로필 정보를 저장하는 테이블은 웹사이트나 애플리케이션 사용자의 개인 정보, 선호, 권한 등을 관리하는 데 중요합니다. 이 테이블은 사용자 ID, 이름, 이메일, 프로필 사진, 생일, 성별, 연락처 정보, 주소, 회원 가입 날짜 등의 정보를 포함할 수 있습니다. 다음은 사용자 프로필 정보를 저장하기 위한 테이블 생성을 위한 SQL 쿼리문 예제와 각각의 설명입니다.


1. 기본 사용자 프로필 테이블 생성
CREATE TABLE user_profiles (
    user_id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50),
    email VARCHAR(100),
    profile_pic TEXT,
    birthdate DATE,
    gender VARCHAR(10),
    contact_info TEXT,
    address TEXT,
    registration_date TIMESTAMP
);
설명: 사용자 ID, 사용자명, 이메일, 프로필 사진, 생일, 성별, 연락처 정보, 주소, 등록 날짜 등을 저장합니다.

 

2. 사용자 권한 테이블 생성
CREATE TABLE user_permissions (
    permission_id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT,
    permission_type VARCHAR(50),
    FOREIGN KEY (user_id) REFERENCES user_profiles(user_id)
);
설명: 권한 ID, 사용자 ID, 권한 타입 등을 저장합니다.

 

3. 사용자 활동 로그 테이블 생성
CREATE TABLE user_activity_logs (
    log_id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT,
    activity_type VARCHAR(50),
    activity_date TIMESTAMP,
    activity_description TEXT,
    FOREIGN KEY (user_id) REFERENCES user_profiles(user_id)
);
설명: 로그 ID, 사용자 ID, 활동 타입, 활동 날짜, 활동 설명 등을 저장합니다.

 

4. 사용자 선호 설정 테이블 생성
CREATE TABLE user_preferences (
    preference_id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT,
    preference_type VARCHAR(50),
    preference_value TEXT,
    FOREIGN KEY (user_id) REFERENCES user_profiles(user_id)
);
설명: 선호 ID, 사용자 ID, 선호 타입, 선호 값 등을 저장합니다.

 

5. 사용자 친구 목록 테이블 생성
CREATE TABLE user_friends (
    friend_id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT,
    friend_user_id INT,
    friendship_status VARCHAR(50),
    FOREIGN KEY (user_id) REFERENCES user_profiles(user_id),
    FOREIGN KEY (friend_user_id) REFERENCES user_profiles(user_id)
);
설명: 친구 ID, 사용자 ID, 친구의 사용자 ID, 친구 관계 상태 등을 저장합니다.

 

6. 사용자 메시지 테이블 생성
CREATE TABLE user_messages (
    message_id INT AUTO_INCREMENT PRIMARY KEY,
    sender_id INT,
    receiver_id INT,
    message_text TEXT,
    sent_date TIMESTAMP,
    read_status BOOLEAN,
    FOREIGN KEY (sender_id) REFERENCES user_profiles(user_id),
    FOREIGN KEY (receiver_id) REFERENCES user_profiles(user_id)
);
설명: 메시지 ID, 발신자 ID, 수신자 ID, 메시지 내용, 발신 날짜, 읽음 상태 등을 저장합니다.

 

7. 사용자 그룹 테이블 생성
CREATE TABLE user_groups (
    group_id INT AUTO_INCREMENT PRIMARY KEY,
    group_name VARCHAR(100),
    creation_date TIMESTAMP
);
설명: 그룹 ID, 그룹명, 생성 날짜 등을 저장합니다.

 

8. 그룹-사용자 연결 테이블 생성
CREATE TABLE group_members (
    group_id INT,
    user_id INT,
    join_date TIMESTAMP,
    FOREIGN KEY (group_id) REFERENCES user_groups(group_id),
    FOREIGN KEY (user_id) REFERENCES user_profiles(user_id)
);
설명: 그룹 ID, 사용자 ID, 가입 날짜 등을 저장합니다.

 

9. 사용자 이벤트 참가 테이블 생성
CREATE TABLE user_event_participations (
    event_id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT,
    event_name VARCHAR(100),
    participation_date TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES user_profiles(user_id)
);
설명: 이벤트 ID, 사용자 ID, 이벤트명, 참가 날짜 등을 저장합니다.

 

10. 사용자 게시글 테이블 생성
CREATE TABLE user_posts (
    post_id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT,
    post_content TEXT,
    post_date TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES user_profiles(user_id)
);
설명: 게시글 ID, 사용자 ID, 게시글 내용, 게시 날짜 등을 저장합니다.


관련 전문용어 설명
CREATE TABLE: 새로운 테이블을 생성하는 SQL 명령어입니다.
INT, VARCHAR, DATE, TIMESTAMP, DECIMAL, BOOLEAN, TEXT: 데이터 유형을 나타냅니다.
AUTO_INCREMENT: 자동으로 숫자를 증가시키는 속성입니다.
PRIMARY KEY: 각 행을 고유하게 식별하는 주 키입니다.
FOREIGN KEY: 다른 테이블의 주 키를 참조하는 외래 키입니다.

반응형