ブログアプリ③(設計しよう)

少し日を置いたら入れたい機能が増えてしまった

とはいえ心の向くまま手をつけていては終わらないので、最低限実装する機能を決める

まずはそこからだ

前提

  • 記事は誰でも見られる
  • 投稿画面などは自分だけが見られるようにする(URLを秘匿、IDとパスワードでログインしてから操作)

つくる

  • 記事を投稿する
  • 記事を編集・削除する
  • 記事にタグをつける
  • 月別アーカイブ

つくりたい

  • 記事を下書き状態と公開状態にできる
  • 記事にコメントする
  • 記事に絵文字を投げる
  • 記事をマークダウンで書く
  • 画像を投稿する(初めは1枚でいい。できれば複数)
  • アプリ内検索機能

機能を元にデータベースの設計を考える

発生する情報は?

  • 記事タイトル
  • 記事本文
  • 下書きor公開のステータス
  • タグ一覧
  • 記事⇔タグの関連
  • コメント
  • コメントした人の名前
  • 絵文字一覧
  • 記事⇔絵文字の関連
  • 画像一覧
  • 記事⇔画像の関連

テーブルにすると?

  • 記事テーブル
    • タイトル
    • 本文
    • 状態
  • タグ一覧テーブル
  • 記事とタグの中間テーブル
  • コメントテーブル
    • 本文
    • コメントした人
    • コメント先の記事
  • 絵文字テーブル
  • 記事と絵文字の中間テーブル
  • 画像テーブル
    • 画像情報(URL?)
    • 画像を投稿した記事

ER図かいた

f:id:d_riko:20181126112031p:plain


今わからないこと

考え始めたらまた出てくるだろうけど、現時点で実装方法が全然イメージできないのはこの二つ

  • 画像を本文中の好きな場所に挿入する方法
  • 絵文字だけ投げる方法(Slackをイメージ)

それじゃあ最低限のものから作っていこう

初めは記事を投稿して見られるようにするところから

なおデザインはあとから考える

スクールのカリキュラムで某フリマアプリのコピーサイトを作ったときフロントから作り始めたので、今度はバックから作る