どうもZoeです。
今回は前回に引き続き、サイトの仕様を決めて行きたいと思います。
前回あらかた機能を考えたので、次はDB設計行います。
ちなみに、前回と今回でかなり期間が開いてますが、何回も失敗を繰り返してやっと記事に出来そうな感じに纏まったので投稿しました。笑
ここを間違うと、後々ものすごーく苦労するらしいので、WordPressがどうなってるかとか色々見て、結構慎重に考えました。もちろん、データベースとCakePHPについてもかなり勉強しました・・・。
CakePHPを使う予定なので、それに準拠したDBにしなければ・・(;´д`)ということで結構難しかったです・・。
DB設計は
以前紹介したECサイト作成の記事を参考にして、まずエクセルで纏めました。
その後、wwwsqldesignerというDB設計用のソフトを落として設計してみました。
参照:
ブラウザ上でさくさくデータベースの設計ができる『WWW SQL Designer』がすごすぎる | IDEA*IDEAこれ普通にローカル環境のhtdocsに置いてアクセスするだけで使えるので、そういったソフトの少ないMAC環境でもちゃんと動いてくれて重宝します。Windows環境だと他にも沢山のフリーソフトがあると思いますのでぐぐってみてください。
んで出来たのが下記。。。

なんか多くねぇええ・・!?と思うかもしれませんが・・
はい、超多いです。ごめんなさい。実は、訳あって色々追加してます。
最初は下記のような構成で作成してました。
■users(ユーザー情報)
■shops(ショップ情報)
■news(新着記事)
しかし、設計していく中で
・CakePHPの命名規則無視してんじゃん俺(CakePHP使用予定)
・CakePHPのACL使うと実装楽そう(必要分のテーブル追加)
・やっぱこの機能欲しい、あの機能も欲しい(機能追加多数・・)
と・・CakePHPの命名規則やDB設計を学んでいく内にこんな感じになりました。
追加予定の機能は主にユーザー管理周りで、こんな感じになってます。
・ACLなるものを使う(ユーザーに権限を持たせて、アクセスできるアクションを制御)
・一般ユーザーも登録可能にして、membersとして各種処理系追加
・一般ユーザーにもマイページを持たせて、閲覧履歴とかお気に入り店舗とか見れるようにする
・店舗ユーザーは管理画面から新着情報の登録と、イベント情報の登録が行えるようにする
・管理者ユーザーをadminsとして追加して、管理画面を追加
・管理者ユーザーはユーザー情報の閲覧と追加削除を行えるようにする(phpMyAdminからDBを弄れるので無くてもいいかも)
画面遷移の流れとして、全てのユーザーはログイン処理を必ず行う為、
ログイン・ログアウト関係はusersに全て纏める事にしました。
画面遷移の流れとしては、
ログイン画面→ユーザー権限識別→各管理画面にリダイレクト
のような感じでおkかなと。
これだとコントローラーの都合上、ログイン・ログアウト処理系のURLが、全部/users/◯◯/になってしまうんですが、なんかrotesを弄るとURLは自由自在っぽいので、後で対応します。(最悪htaccessでもどうにかなる気がします・・多分)
という事で、いよいよ実装に入っていこうかなぁー・・と。
今後の予定としては
・テストデータをINSERT INTO
・とりあえずBakeしてCRUD必要そうな所作る
・モックアップ作る
・検索機能系作る(searchプラグインでなんか行けそう)
・ログイン、ログアウト処理系作る
・各種管理画面作る
・エラー表示をcakephpっぽくなくする
・店舗を登録しまくる(地味に大変そう・・)
・余裕があればajax対応とかする
こんな感じでしょうか・・・?(´Д`)ハァ…
全部やってたら1年ぐらいかかりそうですなぁ。笑
がんばりまっしょ!
追記--------------------
取り急ぎWordpressで構築しました。
服屋・アパレルショップ・雑貨屋の検索ポータルサイト