사용자 프로필 정보를 저장하는 테이블은 웹사이트나 애플리케이션 사용자의 개인 정보, 선호, 권한 등을 관리하는 데 중요합니다. 이 테이블은 사용자 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: 다른 테이블의 주 키를 참조하는 외래 키입니다.
'SQL' 카테고리의 다른 글
신용카드 트랜잭션 테이블 생성: 신용카드 트랜잭션 정보를 저장하기 위한 테이블을 생성합니다. (1) | 2024.01.02 |
---|---|
온라인 강의 테이블 생성: 온라인 강의 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.02 |
항공편 예약 테이블 생성: 항공편 예약 정보를 저장하기 위한 테이블을 생성합니다. (1) | 2024.01.02 |
음식 주문 테이블 생성: 음식 주문 정보를 저장하기 위한 테이블을 생성합니다. (1) | 2024.01.02 |
호텔 예약 테이블 생성: 호텔 예약 정보를 저장하기 위한 테이블을 생성합니다. (1) | 2024.01.02 |