前回(Vol.2)では画面駆動設計に基づくUI設計と処理設計を行いました。
今回は、それらを支える データベース構造(ER図) にフォーカスし、実装前に必要な「詳細設計」の説明を行います。
🔗 ER図(Entity Relationship Diagram)
ER図は以下の基本設計をもとに、システム全体のデータ構造を視覚化したものです。
🧱 テーブル構成の概要
テーブル名 | 概要 |
---|---|
users |
ユーザー情報(ログインID、名前、権限など) |
bulletin_boards |
掲示板情報(掲示板名、作成者など) |
threads |
スレッド情報(タイトル、紐づく掲示板など) |
posts |
投稿情報(本文、投稿者、投稿日時など) |
🧩 リレーション(関連)
-
users → posts
1人のユーザーが複数の投稿を持つ(一対多) -
bulletin_boards → threads
1つの掲示板に複数のスレッドが属する(一対多) -
threads → posts
1つのスレッドに複数の投稿が属する(一対多)
🧠 実装との関係性
ER図をもとに、今後以下の開発工程に繋がります:
- DAOの作成(各テーブルに対するDBアクセスクラス)
- JavaのEntityクラス設計
- 入力バリデーションの対象フィールドの整理
- 外部キー制約・削除制御(Cascadeなど)の反映
- 表示順や検索条件のSQL設計(ORDER BY、JOIN)
💬 補足事項・設計判断の意図
- スレッド・投稿には「論理削除」対応(削除フラグ)を想定
-
created_at
/updated_at
は全テーブルに付与(監査対応) - IDは基本的に自動採番(DBシーケンス or AUTO_INCREMENT)
▶️ 次回予告:Vol.4へ続く
次回は、いよいよこのER図・詳細設計をもとに、Struts2フレームワークを用いた実装フェーズに入ります!に入ります!
EntityクラスやDAO、アクションとのつながりを具体的に見ていきましょう!
🧭 Vol.1〜7 関連リンク
回 | タイトル | 主な内容 |
---|---|---|
Vol.1 | プログラミングとの再会 – 「画面ありき」で変わった学び方 | プログラミング再入門と、画面駆動の学習法というユニークなアプローチの紹介。最初に「画面」から考えることでモチベーションを継続。 |
Vol.2 | 画面駆動設計に基づく設計書の具体例:画面フローからUI設計・処理定義まで | 実際に描いた画面遷移図・UI設計・処理定義書を公開し、画面中心の設計手法を解説。 |
Vol.4 | Struts2とMavenの基礎と設定ファイルの役割 | Struts2の構成とMavenでの管理、web.xml や pom.xml の役割を丁寧に解説。 |
Vol.5 | 環境構築編:掲示板アプリケーションの実行準備 | TomcatとEclipseでの動作環境構築。 |
Vol.6 | BaseActionクラスの詳細解説【Struts2の要】 | すべてのアクションに共通する基底クラス BaseAction を定義し、ログ出力や共通処理を集約。 |
Vol.6.1 | BaseAction の活用例【共通基底クラスでセッション管理を簡素化】 | BaseAction を継承する具体的なアクション例を紹介し、セッションやログ処理の統合例を実践。 |
Vol.7 | Struts2 における MVC モデルの全体像 | Model-View-Controller の各要素が Struts2 でどう分担されるかを体系的に解説。 |
Vol.7.1 | Struts2 における Model(モデル)について | JavaBeansベースのModelクラス(User, Thread, Post など)設計とその役割を明確化。 |
Vol.7.2 | Struts2 における Controller(コントローラ)の責務 | Actionクラスを軸に、入力処理・分岐処理・画面遷移の中核を担うControllerの実装指針を提示。 |
Vol.7.3 | Struts2 における struts.xml の書き方と役割 | URLマッピング、結果遷移、アクション定義の方法を丁寧に記述。初心者の詰まりやすいポイントを回避。 |
Vol.7.4 | struts.xmlの高度な設定と実践活用(Struts2) | namespaceの活用や画面単位での分離設計、開発時の保守性向上テクニックを紹介。 |