[개발이야기#040] 내가 해보고 싶은 것 - 한국 스팀잇 M2E 사용자 모임 글 수집하기
[개발이야기#040] 내가 해보고 싶은 것 - 한국 스팀잇 M2E 사용자 모임 글 수집하기
안녕하세요 가야태자 @talkit 입니다.
관련글
[개발이야기#028] 내가 해보고 싶은 것 - 자동 보팅 프로그램 SQLite vs DuckDB [postingcuration]
[개발이야기#029] 내가 해보고 싶은 것 - 자동 보팅 프로그램 사용자 및 포스트 테이블 생성하기 [postingcuration]
[개발이야기#031] 내가 해보고 싶은 것 - 자동 보팅 프로그램 사용자 등록 프로그램 작성하기 [postingcuration]
[개발이야기#032] 내가 해보고 싶은 것 - 자동 보팅 프로그램 사용자 게시글 수집기 작성하기 [postingcuration]
[개발이야기#034] 내가 해보고 싶은 것 - 포스팅 큐레이션 글을 자동으로 정리해보자 [postingcuration]
[개발이야기#034] 내가 해보고 싶은 것 - 포스팅 큐레이션 글 목록을 자동 포스팅 하기 [postingcuration]
[개발이야기#035] 내가 해보고 싶은 것 - 자동 보팅 프로그램 하루에 한번 보팅하는 프로그램[postingcuration]\
[개발이야기#036] 내가 해보고 싶은 것 - 자동 보팅 프로그램 스케쥴러 프로그램 [postingcuration]
[개발이야기#037] 내가 해보고 싶은 것 - 자동 보팅 프로그램 정리 [postingcuration]
머릿말
저위에 #28번글에 제가 속은 것이 있습니다. T.T DuckDB가 다중 접속이 되는 줄 알았는데 다중 읽기 쓰기가 되는거지 T.T 다중 접속이 되는 것은 아니었습니다.
그래서, 이번에 제가 해보려고 하는 것은 제가 속한 한국 스팀잇 M2E 사용자 방에 있는 사용자들의 글 중에 M2E 관련 글을 수집해서 매일 매일 글로 발행해 보는 것입니다.
그런데, 이번에는 데이터베이스를 변경하려고 합니다.
어치파 SteemSteps 라는 앱을 개발하면서 집 컴퓨터에 MariaDB를 설치해 두었습니다.
그래서 일단 기존 프로그램은 그대로 돌리고 M2E용 프로그램은 MariaDB에 수집할 계획입니다.
수집용 테이블 작성
DuckDB는 파일이 데이터베이스이기 때문에 파일 하나로 조작을 했는데 MariaDB는 데이터베이스를 만들고 그 안에 테이블을 만들어야 합니다.
데이터베이스를 생성하는 방법은 아래와 같습니다.
우분투 리눅스에 MariaDB를 설치 했습니다.
sudo mariadb
위 명령어로 MariaDB에 접속할 수 있습니다.
create database steemit_postings;
use steemit_postings;
위 명령어로 데이터베이스를 만들고 해당 데이터 베이스에 접속 합니다.
테이블 설계
지난 번에 살짝 테이블은 데이터의 저장소라는 말씀을 드렸구요.
오늘도 users 테이블과 postings 테이블을 설계 하겠습니다.
사용자테이블(users)
| Column Name | Domain Name | Data Type | Constraints | Description |
|---|---|---|---|---|
| user_id | 사용자아이디 | VARCHAR(50) | UNIQUE | 사용자를 위한 고유 식별자 |
| nickname | 닉네임 | VARCHAR(50) | NULL allowed | 사용자의 닉네임 (널 허용) |
| is_active | 사용유무 | CHAR(1) | DEFAULT 'Y' | 사용자 활성 상태 ('Y' 또는 'N') |
| registered_at | 등록일시 | DATE | 사용자가 등록된 날짜와 시간 | |
| modified_at | 수정일시 | DATE | 사용자가 마지막으로 수정된 날짜와 시간 |
동일하게 위와 같이 하겠습니다.
위 테이블 설계를 실제로 테이블로 만들어 보겟습니다.
CREATE TABLE users ( user_id VARCHAR(50) UNIQUE NOT NULL COMMENT '사용자를 위한 고유 식별자', nickname VARCHAR(50) DEFAULT NULL COMMENT '사용자의 닉네임 (널 허용)', is_active CHAR(1) DEFAULT 'Y' COMMENT '사용자 활성 상태 (\'Y\' 또는 \'N\')', registered_at DATE NOT NULL COMMENT '사용자가 등록된 날짜와 시간', modified_at DATE NOT NULL COMMENT '사용자가 마지막으로 수정된 날짜와 시간', PRIMARY KEY (user_id) ) COMMENT '사용자 정보 테이블';
현재 제 데이터베이스에는 users라는 테이블이 생성 되었습니다.
사용자 포스트저장소(postings)
| Column Name | Domain Name | Data Type | Constraints | Description |
|---|---|---|---|---|
| post_id | 게시물아이디 | VARCHAR(255) | UNIQUE | 스팀잇 게시물의 고유 식별자 |
| user_id | 작성자아이디 | VARCHAR(50) | REFERENCES users(user_id) | 게시물 작성자의 사용자아이디 |
| title | 제목 | VARCHAR(255) | 게시물의 제목 | |
| body | 내용 | TEXT | 게시물의 내용 | |
| tags | 태그 | VARCHAR(255) | 게시물에 포함된 태그 | |
| main_tag | 메인태그 | VARCHAR(255) | 게시물의 메인 태그 | |
| voting_status | 투표여부 | CHAR(1) | N | 해당 게시물이 투표되었는지 여부 |
| posting_date | 포스팅일시 | DATE | 게시물이 포스팅된 날짜와 시간 | |
| created_at | 작성일시 | DATE | 게시물이 생성된 날짜와 시간 | |
| modified_at | 수정일시 | DATE | NULL allowed | 게시물이 마지막으로 수정된 날짜와 시간 (널 허용) |
CREATE TABLE postings ( post_id VARCHAR(255) UNIQUE NOT NULL COMMENT '스팀잇 게시물의 고유 식별자', user_id VARCHAR(50) NOT NULL COMMENT '게시물 작성자의 사용자아이디', title VARCHAR(255) NOT NULL COMMENT '게시물의 제목', body TEXT NOT NULL COMMENT '게시물의 내용', tags VARCHAR(255) COMMENT '게시물에 포함된 태그', main_tag VARCHAR(255) COMMENT '게시물의 메인 태그', voting_status CHAR(1) DEFAULT 'N' COMMENT '해당 게시물이 투표되었는지 여부', posting_date DATE NOT NULL COMMENT '게시물이 포스팅된 날짜와 시간', created_at DATE NOT NULL COMMENT '게시물이 생성된 날짜와 시간', modified_at DATE DEFAULT NULL COMMENT '게시물이 마지막으로 수정된 날짜와 시간 (널 허용)', PRIMARY KEY (post_id), FOREIGN KEY (user_id) REFERENCES users(user_id) ) COMMENT '게시물 정보 테이블';
아래는 실제로 테이블이 생성 되어 있는지 확인한 명령어 입니다.
MariaDB [steemit_postings]> show tables;
+----------------------------+
| Tables_in_steemit_postings |
+----------------------------+
| postings |
| users |
+----------------------------+
2 rows in set (0.000 sec)
위와 같이 두 개의 테이블이 잘 생성 되었습니다.
이번 글은 여기까지 하고, 다음 글에서 사용자를 생성하는 프로그램을 MySQL로 변경 해보겠습니다.
감사합니다.
Posted through the ECblog app (https://blog.etain.club)
[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.