ブログアプリ③(設計しよう)
少し日を置いたら入れたい機能が増えてしまった
とはいえ心の向くまま手をつけていては終わらないので、最低限実装する機能を決める
まずはそこからだ
前提
- 記事は誰でも見られる
- 投稿画面などは自分だけが見られるようにする(URLを秘匿、IDとパスワードでログインしてから操作)
つくる
- 記事を投稿する
- 記事を編集・削除する
- 記事にタグをつける
- 月別アーカイブ
つくりたい
- 記事を下書き状態と公開状態にできる
- 記事にコメントする
- 記事に絵文字を投げる
- 記事をマークダウンで書く
- 画像を投稿する(初めは1枚でいい。できれば複数)
- アプリ内検索機能
機能を元にデータベースの設計を考える
発生する情報は?
- 記事タイトル
- 記事本文
- 下書きor公開のステータス
- タグ一覧
- 記事⇔タグの関連
- コメント
- コメントした人の名前
- 絵文字一覧
- 記事⇔絵文字の関連
- 画像一覧
- 記事⇔画像の関連
テーブルにすると?
- 記事テーブル
- タイトル
- 本文
- 状態
- タグ一覧テーブル
- 記事とタグの中間テーブル
- コメントテーブル
- 本文
- コメントした人
- コメント先の記事
- 絵文字テーブル
- 記事と絵文字の中間テーブル
- 画像テーブル
- 画像情報(URL?)
- 画像を投稿した記事
ER図かいた
今わからないこと
考え始めたらまた出てくるだろうけど、現時点で実装方法が全然イメージできないのはこの二つ
- 画像を本文中の好きな場所に挿入する方法
- 絵文字だけ投げる方法(Slackをイメージ)
それじゃあ最低限のものから作っていこう
初めは記事を投稿して見られるようにするところから
なおデザインはあとから考える
スクールのカリキュラムで某フリマアプリのコピーサイトを作ったときフロントから作り始めたので、今度はバックから作る