投稿日: | 最終更新日:
【PHP】Twitter風掲示板を作る 設計編その1【実践】
システムを作るとき、いきなりプログラムに取り掛かるのは不可能です。 まずは、以下のことから始めましょう。 ①必要な機能を挙げる。 ②データベースを設計する。 次に、紙・ホワイトボードなどに「○○ができる」といった言葉で列挙してみましょう。 ・文章投稿ができる。 ・会員登録ができる。 ・退会ができる。 ・写真をアップロードできる。 ・ログイン機能 ・ログアウト機能 次にDBの設計をします。「できること」にたいして「必要なこと」を列挙します。 メッセージ 会員情報
メッセージ 会員情報 返信先のメッセージ
ニックネーム メールアドレス(ログインIDとして使用する)
メールアドレス パスワード
「必要なこと」で挙げたことをグループ化します。 ここでは、会員関係と投稿関係の情報に分けます。
ニックネーム メールアドレス パスワード 写真のパス メッセージ 会員情報 返信先のメッセージ 会員関係 – members 投稿関係 – posts テーブルにリレーションを張ります。テーブルにプライマリーキーを付加します。 会員ID ニックネーム メールアドレス パスワード 写真のパス メッセージID 投稿者ID 返信先のメッセージ メッセージID メッセージ 投稿者ID 返信先のメッセージ 返信先のメッセージID カラム名は短くかつわかり易くつけます。間違いのない英語でつけます。 あとで変更することになると、非常に困難です。 「created」「modified」を追加します。 これはデータ作成日を表すものです。標準でつけておきましょう。 ※もっと正規化仕様と思えばできます。
順番に設計する
できる機能の列挙
・他人の投稿に対して返信できる。DBを設計
文章投稿ができる。
他人の投稿に対して返信できる。
会員登録ができる。
退会ができる。
写真をアップロードできる。
ログイン機能
ログアウト機能
グループ化
会員関係
投稿関係
各テーブルに名前を付けます。
プライマリーキー
会員関係(members)
投稿関係(posts)
メッセージ返信先との関係
投稿関係(posts)
カラムのネーミング
- Python 114
- 制作 54
- RaspberryPi 41
- Django 40
- WordPress 40
- Linux 27
- VPS 22
- JavaScript 21
- PHP 20
- HTML・CSS 19
- AWS 16
- 仮想環境 15
- レスポンシブデザイン 13
- マイコン 11
- WEB全般 11
- 動画製作 9
- Webサービス 8
- 統合開発環境 8
- 機械学習 8
- PyCharm 7
- jQuery 7
- AfterEffects 7
- 起業・設立 7
- Django REST framework 6
- C# 6
- デザイン 6
- SEO 6
- pydata 6
- Visual Studio 5
- 数学 5
- 携帯サイト 5
- heroku 5
- Mac 5
- illustrator 5
- node.js 5
- Anaconda 5
- Nginx 4
- Jupyter Notebook 4
- インフラ 4
- Google Colaboratory 4
- symfony 4
- Webスクレイピング 3
- photoshop 3
- Go言語 3
- PC 3
- ツール 3
- Docker 3
- facebook 3
- 作業効率化 3
- データベース 3
- Cloud9 3
- コマンド 2
- micro:bit 2
- Kali Linux 2
- Webサーバー 2
- MariaDB 2
- ドローン 2
- コンテナ 2
- DaVinci Resolve 2
- ネットワーク 2
- Java 2
- movie 2
- PCDJ 2
- 音楽 2
- XSERVER 2
- Ansible 1
- Vue.js 1
- JSON 1
- Bootstrap 1
- バージョン管理システム 1
- SSL 1
- S3 1
- ムームードメイン 1
- ネットワーク 1
- アニメーション 1
- D3.js 1
- Rhino 1
- アニメ 1
- git 1
- windows 1
- アクセス解析 1
- スマートフォン 1
- アフィリエイトノウハウ 1
- 知識 1
- TypeScript 1
- 役立つ本・書籍 1
- データサイエンス 1
- ESP32 1
- AI 1
- ownCloud 1
- API 1