Ikeda's Blog

Laravelでブログサイトを作る 03. URL設計

おさらい

要件定義
データベース定義

必要なページ

では、リストアップした要件を盛り込んだブログサイトを作るとして、どのようなページが必要になるかを考えていきます。
この時、2つの視点が考えられます。閲覧してくださる人のため(フロント)と、管理を行う人のため(管理)です。

フロント

  • 記事の一覧表示
    • 新着順の一覧
    • 大カテゴリで絞り込んだ記事の一覧
    • 少カテゴリで絞り込んだ記事の一覧
    • 検索ワードにマッチする記事の一覧
  • 記事1件の表示

管理

  • 親カテゴリの管理
    • 一覧表示(追加、変更、削除)
  • 少カテゴリの管理
    • 一覧表示(追加、変更、削除)
  • 記事の管理
    • 一覧表示
      • 新着順の一覧
      • 親カテゴリで絞り込んだ記事の一覧
      • 少カテゴリで絞り込んだ記事の一覧
      • 検索ワードにマッチする記事の一覧
    • 編集

それぞれの補足

記事の一覧表示

新着順、絞り込み、検索が「記事の一覧表示」にまとめられています。
これは、別々の機能ではなく、絞り込み条件があるか無いかの差はつきますが、それでも記事一覧という大本の役割に違いが無いからです。
こう考えておけば、いくつも似たような機能を開発するのではなく、異なる部分だけそれぞれに作り、大本の機能に合流させるという考えへと繋がり、開発の工数を削減することへと繋がります。

親カテゴリの管理、少カテゴリの管理

一覧表示に対して、カッコ書きで追加などを記しています。
記事などであれば、一覧から編集対象を選ぶ→編集する、というワークフローになります。
さて、カテゴリではこのフローは必要だろうか、と考えると、正直なところ、不要だと私は考えました。
編集項目が少ないことと、表示順を編集する際、他のカテゴリの順位を確認したくなるケースがあるからです。
なので、編集専用のページを作って1件ずつ管理するのではなく、一覧表示する画面で編集もできるようにすれば良いと考えました。

URL一覧

  • http://ドメイン/
    • 新着順一覧
  • http://ドメイン/parent/XXX
    • 親カテゴリで絞り込んだ記事の一覧
    • 「XXX」は親カテゴリID
  • http://ドメイン/child/XXX
    • 子カテゴリで絞り込んだ記事の一覧
    • 「XXX」は子カテゴリID
  • http://ドメイン/search
    • キーワードで検索を行う
    • 検索ワードはPOSTメソッドで送信
  • http://ドメイン/content/XXX
    • 記事1件の表示
    • XXXは記事ID
  • http://ドメイン/admin
  • http://ドメイン/admin/articleList
    • 管理者用:記事一覧
  • http://ドメイン/admin/articleEdit
    • 管理者用:記事編集
  • http://ドメイン/admin/articleUpdate
    • 管理者用:記事の更新処理
  • http://ドメイン/admin/parent/XXX
    • 管理者用:記事一覧(親カテゴリで絞り込み)
  • http://ドメイン/admin/child/XXX
    • 管理者用:記事一覧(子カテゴリで絞り込み)
  • http://ドメイン/admin/search
    • 管理者用:記事一覧(キーワード検索)
  • http://ドメイン/admin/parent
    • 管理者用:親カテゴリ一覧
  • http://ドメイン/admin/parentUpdate
    • 管理者用:親カテゴリの更新処理
  • http://ドメイン/admin/child
    • 管理者用:子カテゴリ一覧
  • http://ドメイン/admin/childUpdate
    • 管理者用:子カテゴリの更新処理