• 締切済み

ER図 設計 ruby rails データベース

初めまして私はWEBエンジニアの駆け出しです。 勉強がてら、姉の会社の顧客管理システムを作成しようと思っています。 ですが、ER図を書くのも初めてですし関係性が理解できておりません。 そこでいくつか質問をさせてください。 以下、実現させたい事を下記に記載致します。 ・スタッフ別に売り上げ管理したい ・支店ごとの売り上げ管理したい ・担当するスタッフが変わっても前のスタッフの情報をもっておきたい。 ・顧客とスタッフを紐付けしたい。 ・ユーザーに付与した割引を一回の来店で1~n個使えるようにしたい。 ・ユーザーは一回の予約で複数の施術を予約できる。 上記6つを実現するためには今のER図で実現できますでしょうか お会計までの流れなのですが、 1.ユーザー詳細ページに入る。 2.ユーザーの詳細ページには予約一覧があり、来店されたら、予約のステータスから来店に切り替える。 3.ユーザーが利用できる割引を決定して、料金を決定したい。 1~3までの流れを実現する為には今のER図で実現できますでしょうか 疑問 1ユーザーが誰を紹介したかをわかるようにしたいのですが、 紹介テーブル的なものを作成するかユーザーテーブルに自己結合的なテーブル設計の方がいいのか迷っています。 支店ごとに出来る施術内容(料金表)を選択できるようにしたい(支店と料金テーブルの間に施術内容テーブルを作るべきでしょうか) 以上、たくさん質問してもうしわけないのですが、ご回答いただけると幸いです。

みんなの回答

  • hue2011
  • ベストアンサー率38% (2801/7250)
回答No.1

添付されている図面は拡大表示しても文字が読めないので細かいことは言えません。 ただ、foreign-keyを活用していなすぎるように見えます。 モデリングというのは、面倒に考えず、扱う情報の粒度で行えばよいのです。 要するに、  スタッフがいるのですね。  顧客がいるのですね。  施術(サービス)があるのですね。それは固定料金ですね。  顧客に予約を設定させたいのですね。だったら予約、という情報があるのですね。  予約にはステータスがあって、予約、施術中、施術終了、キャンセルがありますね。  割引のようなことを顧客単位で提供するのですね。  顧客はスタッフと紐づいているけれど、スタッフが交代しても同じサービスが得られるようにするなら   ⇒顧客管理情報がいるのですね。それは顧客情報自体とは異なるものですね。  顧客の紹介、という事態が発生するのですね。  だったら誰が誰を紹介、という紹介メモのようなものが顧客とは別の情報単位で存在しますね。  同じ人を別の人が紹介する場合もありますしね。   以上の話から、エンティティは6つは必要になりますね。 それ以上なら問題はありませんけど、あなたの図面だと箱が10あって、冗長である危険はありませんか。 さて、モデルができたとき、業務上いくつかのステージがあるでしょう。それを考えます。 それぞれのエンティティが更新されるのはどういうとき? 何が契機となって変わるのですか。 契機、は画面を切り替えます。 そういう考えで、画面遷移が作れます。 ひとつひとつの画面で、どのボタンを押されたら、とか入力終了したら、とかの場面で処理が走ります。 もちろん、画面を切りかえるときにも処理が走って、このときにDBが書き換えられます。 いいでしょうか。 私が最初にいったモデリング、が M です。Modelですね。 画面の話が V です。Viewです。 処理が走る、というのが C です。Controlです。 これでMVCということになります。以上をすべて考え切れば、自動的にプログラムができているはずです。 なにせRubyでしょう。ちゃんとやれば必ずできます。 わくわく設計実現してください。

関連するQ&A