3-2.関連付けとデータの導入

P:よし、休憩終わり! 次は何するの?

O:これで3個のEntityが完成したから、それぞれを関連付けるわ。

P:関連付ける?

O:レコードのプライマリキーの話になるのだけど、とても長くなってしまうから簡単に説明するわね。

Webアプリケーションでデータを表示したり収めたりするときに、複数ののEntityが必要なことがあるの。

例えばBOOKのEntityのデータが5項目、CATEGORYが1項目、REVIEWが1項目を一度に表示しようとしたら、そのページには3つのEntityを用意しなければいけないの。

少しのAttributeのために、毎回複数のEntityを引き出すのは効率が悪いわ。

だから、アプリケーションに合わせた関連付けをしてあげることが大切なの。

P:そっか、全部のページにEntityがいっぱい付いてたらアプリの動作も重いよね!

O:(それもあるけど、ホントにわかってるかしら……)まあ、そんなとこかしらね。

P:じゃあ、さっそくやってみるよ。

まずは、BOOK Entityの関連付けからだね!

 

09  BOOK Entityで右クリックをし「Add Entity Attribute」を選択します。

10  「CATEGORY_ID」と入力し、Data Typeが「CATEGORY Identifier」になっていることを確認します。

P:これでBOOK Entityを使用するときに、CATEGORY Entityからデータを引用できるようになったね!

318319029

O:次はREVIEW Entityに関連付けね。

 

11 REVIEW Entityで右クリックをし「Add Entity Attribute」を選択します。

12 「BOOK_ID」と入力し、Data Typeが「BOOK Identifier」になっていることを確認します。

  • これでREVIEW Entityを使用する際にBOOK Entityからデータを引用できるようになります。

320321

 

O:これで関連付けは終了よ。

P:この関連付けって理由があるの?

O:0-2.操作を始める前に(データモデル)で説明した、ERを基にしているわ。

  • BOOKは書籍データになるから、分類分けするためにCATEGORY(カテゴリー)と関連しなきゃいけない(BOOK Entity内にCATEGORY_IDの作成)
  • 同じようにREVIEW(書籍のレビュー)は本のレビューが入るから、BOOKと関連させて、どの本のレビューなのか分かるようにする(REVIEW Entity内にBOOK_IDの作成)

このために前もってデータモデルのER図を決めておく必要があったの。

P:後から関連付けが変わったりしないの?

O:関連付けの変更はなるべく避けてね。ページや機能を追加した後で、関連付けを変更するとエラーが出て、それを解消しても不具合の元になるかもしれないの。

最初の設計に問題があったり、後から追加の機能が必要になったりしたら変更の必要があるかもしれないけれど、それでも、初めに拡張性を考えて作っていれば、避けられる問題だと思うわ。

どうしても、関連付けを変更しなければいけない場合は、一から作り直す覚悟を持ってね。

P:そっか一度決めたら、後戻りが難しいところなんだね。

O:Entityはデリケートだからね。新しいアプリを作るときは、特に慎重にね。

 

さて、次からは、作成したEntityに、2.Excelデータ作成で作った3つのExcelデータを導入するわ。

 

13 BOOK Entityを右クリックして「Advanced」から「Create Action to Bootstrap Data from Excel…」を選択します。

14 先ほど作成したBook Excelファイルを選択します。

15 「Excel Columns」と「’BOOK’ Attributes」のデータ名が一致していることを確認し、【PROCEED】を選択します。

322323

16 同様にREVIEW EntityとCATEGORY Entityに13~15の手順を行ってExcelデータを導入します。

324325

P:これで3個のデータをEntityに格納したの?

O:ええ、問題なくできていれば、それぞれのEntityに反映されているわ。

P:ホント!? 見たい見たい!

O:あわてないで、もう少し先で確認できるから。

そのためにも、次はこれらを用いて実際にWebページの作成をしましょう。

326327328

<<前ページ:3-1. EntityとAttribute | 次のページ:4. Web Screen >>

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です