ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

画面項目からDBのテーブル設計をする方法 フロントからサーバーサイドへの移行法

2015-09-01 16:24:14 | 開発ネタ
 フロントのほうの設計方法は、ギャレットの「ウェブ戦略としての「ユーザーエクスペリエンス」―5つの段階で考えるユーザー中心デザイン」で、「戦略、要件、構造、骨格、表層」っていう5つの段階で考えればよい手順が示されている。

で、これを、サーバーサイドのDBに持ってくる方法に関しては、DBはDBで、設計方法はあるけど(正規化理論)、それをどう使うのか、書いていない。

ざっくり書いておく




■フロントの画面項目から、テーブルを出す方法

1.各画面の入力項目、出力項目を出していく

  ワークショップ風にやるなら、入力項目1項目1付箋紙をつかうといい。
  例:ログイン画面で、「ログイン名」で1枚の付箋紙、「パスワード」でもう一枚の付箋紙の感じ

2.その項目を、グループごとにまとめる。
  (2-1)項目を●●のXXという形でわざと表現する
   →ログイン名=ユーザーのログイン名、パスワード=ユーザーのパスワード
    受注日=受注した日

  (2-2)そしたら、●●がグループ、上記の例だと、ユーザーや受注でグループを作る
    DBに保存しないもの:操作(~ボタン、並び替え順など)は、ひとまとめのグループに

  (2-3)グループに表題をつける
    付箋紙にグループ名を書く場合、色を変えたほうがいい


3.グループの表題1レコードに対して、各項目は1個かどうか確認する
  1個で無かったら、(たとえ1項目でも)別グループにする
   →すでに出来ているグループに所属するのでなければ・・

  ユーザー1人に対し、ログイン名は1つであれば、ログイン名はユーザーグループ
  ログイン日は、複数考えられるので、別グループに分ける

  →この操作が終わると、第一正規形が完成する

4.各グループごとの関係をいれる
  グループA,Bとあったとき、A1件に対して、Bが何件もあったら1対多
  逆は多対1、両方有り得たら多対多。これをいれる

5.IDをつける
  各グループで、グループ名+IDのIDをつける
   →1件に1つのもので、IDになりえるものがあったら、わざわざIDを
    ふらなくてもよい。
     例:ユーザーテーブルのログイン名
      (振っても良い:その場合IDはユーザーIDとなる)

6.外部キーを入れる
  4の操作で、1対多の場合、多のグループに1のグループのIDを追加する

7.各グループをみて、
  この項目がきたときは、この項目がからなずきている!というのが無いかさがす

  例:都道府県と地域(関東、関西など)
    →ユーザーからみると、どちらも1対1だが・・
  もしくは、ロジック的にこの項目のこの値が決まると、他の項目の値が
  推測できるものを探す。
   それは、別グループにわけ、IDを振って、IDだけを、もとのグループに入れる

  →この操作が終わると、第三正規形が完成する

8.ER図にまとめる
    エンティティ=グループ(エンティティ名=グループ名)
    アトリビュート=項目(付箋紙1枚1枚)
    関係:4でつけた
  →ER図に書ける

  なお、テーブルをつくるときは
    エンティティ=テーブル(エンティティ名=テーブル名)
    アトリビュート(属性)=テーブルのカラム(各項目)
    関係:6で外部キーをつけた
    主キー:5で割り振った
  となる。

9.シナリオに沿って動かしたとき、テーブルのデータが生成、参照、変更、削除
  されるか、矛盾ないか確認





ここでは第二正規形の議論は起こらない(複合キーがないので)
その理由は別のときに・・・

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

佐野氏デザインの五輪エンブレム使用中止へ

2015-09-01 13:45:16 | Weblog
だって。


佐野氏デザインの五輪エンブレム使用中止へ 組織委が方針固める
http://headlines.yahoo.co.jp/hl?a=20150901-00000095-spnannex-spo


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする