2012年12月13日木曜日

DB設計を考える

自身のスキルを考えたらDBや仕様はできるだけ簡単するというのが一つの解だとは思いながらも、つまずくポイントでしっかりつまずいていきたいという思いもあるため最初からゴールを意識して作成していくことにしてみる。 あまりにも遠回りになりそうならその時考えることにしよう。

まずはテーブルを思いつく限り。

  • users - 認証とセッション管理に使うつもり
  • arrivals - 顧客データに当たる部分。素直に顧客データとしないのは顧客に対する到来イベントを処理の中心に置きたいから。普通なら顧客テーブルに到来イベントテーブルをぶら下げるべきだけど、到来イベントをまとめたデータ群を定期的に作成してarrivalsに放り込んでいく。 あまりサンプルがみつからないアプローチの仕方なのでこの先つまずく原因になりそうな仕様だ。
  • comments - 顧客とのやりとりを記録していくテーブル。このシステムでの基幹となる部分かな。ここに残したコメントを複数人で共有できるようにするのが主目的
  • reservations - 予約情報をシステム外部から取り込んで放り込んでおくテーブル
妄想では、
arrivalsのデータに対してセールスアプローチを行い、アプローチのログをcommentsテーブルに記録していく。reservationsには定期的に結果を取り込みarrivalsに結果情報を補足する。
コメントを作成する機能のほか、外部情報をテーブルに反映させていく機能が必要だ。
顧客情報を扱うので当然認証機能はつけたい。
とはいえ、イントラ内での使用を前提としているので簡易認証でも構わないと思ってる。

ER図にするにはまだ妄想が足らない気がするので落書きから。
ああ、そうそう顧客の予約管理システムにしたいってのどっかに書いたっけか。

users

  1. id
  2. nameKana
  3. nameKanji
arrivals
  1. id
  2. 目的コード
  3. date
  4. address
  5. phone
  6. mobile
  7. stage
  8. reservation_id
comments
  1. id
  2. user_id
  3. arrivals_id
  4. date
  5. time
  6. text
  7. status

reservations
  1. id
  2. arrivals_id
  3. date
  4. staff
テーブルは4つくらいか。テーブル間をMySQL上で結ぶ必要はないはず。テーブル間の結びつけはFuelがやってくれる。。。はず。 そうだよね??

すこしやりたいことがはっきりしてきました?
目的コードは英語表現ではなんて書けば良いかなぁ。ちょっとweblioで調べておくか。
むぅ。なんとなくここにテーブル間の従属関係を考えればbakeでパパッといけるような気がするけどここはFuelPHPで頑張ってみることにしよう。

従属関係はアンダースコアで書いてみた。アンダースコアのついている項目は
他テーブルの主キーにするつもりです。
CakePHPと並行して学習中なので記法なんかがゴッチャになってますw。

作業の進み具合を分かり易くするために目次をつけてみることにする。


>>続く
目次

DB設計を考える

0 件のコメント:

コメントを投稿