[개발이야기#040] 내가 해보고 싶은 것 - 한국 스팀잇 M2E 사용자 모임 글 수집하기

in #kr2 years ago (edited)

[개발이야기#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 NameDomain NameData TypeConstraintsDescription
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 NameDomain NameData TypeConstraintsDescription
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수정일시DATENULL 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)

Sort:  

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.

Coin Marketplace

STEEM 0.04
TRX 0.32
JST 0.082
BTC 60785.45
ETH 1557.47
USDT 1.00
SBD 0.47