プログラミングのリハビリも兼ねてブログシステム自作するよ ID:lh0gmPQq

1以下、名無しにかわりましてVIPがお送りします:2024/06/18(火) 22:27:15.39 ID:lh0gmPQq

最近まともにプログラム書いてないのでなまった腕を叩き直すためにブログシステムでも開発しようと思う
記事の投稿・更新、認証、画像やファイルのアップロード、コメントの投稿、ページ分け、RSSフィードぐらいまで実装してデプロイできたらいいな

2以下、名無しにかわりましてVIPがお送りします:2024/06/18(火) 23:37:49.20 ID:lh0gmPQq

手を動かす前にデータベース設計考えとく
カテゴリとかタグとか使わないと思うし users と posts と comments があれば十分かな(一人で使うだろうから users も別になくていいけど)
無難にこんな感じでいいかな 最近の PostgreSQL って拡張機能使わなくても UUID 生成できたり色々便利になっててすごい

CREATE TABLE IF NOT EXISTS users (
id UUID DEFAULT gen_random_uuid(),
username VARCHAR(255) UNIQUE NOT NULL,
hashed_password VARCHAR(255) NOT NULL,
salt VARCHAR(255) NOT NULL,
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);
CREATE TABLE IF NOT EXISTS posts (
id UUID DEFAULT gen_random_uuid(),
user_id UUID NOT NULL REFERENCES users(id),
title TEXT NOT NULL,
content TEXT NOT NULL,
is_deleted BOOLEAN DEFAULT FALSE,
is_published BOOLEAN DEFAULT TRUE,
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);
CREATE TABLE IF NOT EXISTS comments (
id UUID DEFAULT gen_random_uuid(),
post_id UUID NOT NULL REFERENCES posts(id),
author TEXT NOT NULL,
content TEXT NOT NULL,
is_deleted BOOLEAN DEFAULT FALSE,
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);

インデックスも貼るよん とりあえず絶対使うとこだけ

CREATE INDEX idx_posts_created_at ON posts (created_at);
CREATE INDEX idx_comments_post_id ON comments (post_id);


このIDをNGリストに追加する

今後このIDの書き込みやスレッドを表示したくない場合、以下のボタンをクリックしてください。
NGリストに追加

レスを書き込む