[개발이야기#029] 내가 해보고 싶은 것 - 자동 보팅 프로그램 사용자 및 포스트 테이블 생성하기 [postingcuration]

in #kr6 days ago (edited)

안녕하세요 가야태자 @talkit 입니다.

이전글

[개발이야기#028] 내가 해보고 싶은 것 - 자동 보팅 프로그램 SQLite vs DuckDB [postingcuration] https://steemit.com/kr/@talkit/028-sqlite-vs-duckdb-postingcuration

어제 글에 이어서 자동 보팅 프로그램 작성을 계속 해보겠습니다.

필요한 테이블

우선 더 많은 테이블이 필요할지 모르겠으나, 제가 필요로 하는 테이블은 사용자와, 포스트 입니다.

사용자 테이블 구조

Column NameDomain NameData TypeConstraintsDescription
user_id사용자아이디TEXTUNIQUE사용자를 위한 고유 식별자
nickname닉네임TEXTNULL allowed사용자의 닉네임 (널 허용)
is_active사용유무CHAR(1)DEFAULT 'Y'사용자 활성 상태 ('Y' 또는 'N')
registered_at등록일시TIMESTAMP사용자가 등록된 날짜와 시간
modified_at수정일시TIMESTAMP사용자가 마지막으로 수정된 날짜와 시간

사용자 테이블은 위와 같이 작성했습니다.

로그인을 할게 아니고, 제가 수집할 사용자를 저장해 놓을 공간 입니다. ^^

포스트 테이블의 구조

Column NameDomain NameData TypeConstraintsDescription
post_id게시물아이디TEXTUNIQUE스팀잇 게시물의 고유 식별자
user_id작성자아이디TEXTREFERENCES users(user_id)게시물 작성자의 사용자아이디
title제목TEXT게시물의 제목
body내용TEXT게시물의 내용
tags태그TEXT게시물에 포함된 태그
main_tag메인태그TEXT게시물의 메인 태그
voting_status투표여부BOOLEANDEFAULT FALSE해당 게시물이 투표되었는지 여부
posting_date포스팅일시TIMESTAMP게시물이 포스팅된 날짜와 시간
created_at작성일시TIMESTAMP게시물이 생성된 날짜와 시간
modified_at수정일시TIMESTAMPNULL allowed게시물이 마지막으로 수정된 날짜와 시간 (널 허용)

포스팅 테이블은 위와 같이 만들어서 하루에 한번정도 0.01이긴 하지만, 수집된 글에 보팅을 해볼 계획입니다.

테이블 만들기

이제 두개의 테이블을 생성하기 위한 준비가 되었습니다.

실제로 DuckDB를 이용해서 테이블을 만들어 보겠습니다.

import duckdb

# DuckDB에 연결 (파일 기반 데이터베이스)
conn = duckdb.connect('steemit_auto_posting.db')

# 사용자 테이블 생성 함수
def create_user_table():
    conn.execute("""
        CREATE TABLE IF NOT EXISTS users (
            user_id TEXT UNIQUE, 
            nickname TEXT NULL, 
            is_active CHAR(1) DEFAULT 'Y',
            registered_at TIMESTAMP, 
            modified_at TIMESTAMP
        );
    """)
    print("User table created successfully (or already exists).")

# 포스팅 테이블 생성 함수
def create_posting_table():
    conn.execute("""
        CREATE TABLE IF NOT EXISTS postings (
            post_id TEXT UNIQUE, 
            user_id TEXT REFERENCES users(user_id), 
            title TEXT, 
            body TEXT, 
            tags TEXT, 
            main_tag TEXT, 
            voting_status BOOLEAN DEFAULT FALSE,
            posting_date TIMESTAMP, 
            created_at TIMESTAMP, 
            modified_at TIMESTAMP NULL
        );
    """)
    print("Posting table created successfully (or already exists).")

if __name__ == "__main__":
    create_user_table()
    create_posting_table()

코드는 위와 같습니다.

실행하기

위 코드를 create_steemit_database.py로 저장

파이썬 라이버러리 설치하기

pip install duckdb

우선 duckdb관련 라이버러리를 설치 합니다.

파이썬 코드 실행하기

python create_steemit_database.py

저를 따라 하셨다면, 위 명령어로 실행이 가능 합니다.

저와 다르게 하셨다면, 파일명을 변경해주십시오.

데이터베이스 생성확인

dir
2024-10-06  오전 11:06           274,432 steemit_auto_posting.db

저는 dir 명령어를 내렸을때 위와 같이 .db파일이 잘 생성되어 있었습니다

여기까지 따라 하셨으면 잘 된 겁니다.

글 마무리

어제 DuckDB를 데이터베이스를 알고, 오늘은 데이터베이스를 만드는 과정을 진행 해 보았습니다.

오늘은 여기까지진행하고, 내일 글에서 사용자를 등록하는 프로그램을 작성해보겠습니다.

감사합니다.



Posted through the ECblog app (https://blog.etain.club)

Sort:  

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

자동보팅 프로그램~ 멋지네요~! ^^
올려주시는 게시글 보면서 지난번 설치했던 Virtual Box 우분트에서 저도 한 번 따라해볼께요~ 고맙습니다! ^^

네 이번 포스팅 큐레이션 주제로 한번 짜보려고 합니다.
잘따라 오십시오 ^^

virtual box 우분투에서 conda 로 환경을 생성 후
알려주신 소스코드를 이용하여 DuckDB를 이용하여 테이블 만들었습니다~! ^^

1.png

고맙습니다! ^^

오 훌륭 합니다. 다음 프로그램도 화이팅입니다.

Coin Marketplace

STEEM 0.18
TRX 0.16
JST 0.030
BTC 62572.49
ETH 2444.62
USDT 1.00
SBD 2.67