タイトルWebObjects 5とOpenBaseを使ってみる/4.モデルをEOModelerで用意する(2)カテゴリーデータベース, WebObjects
作成日2001/8/7 16:59:29作成者新居雅行
OKボタンをクリックすると次のようなダイアログボックスが出てくる。書いてある通りなのであるが、今回のように主キーを定義した1つだけのテーブルを使うような単純な場合にはチェックは全部オフにして、Nextをクリックすれば良い。

◇モデル作成のオプションが出てくるが今回は全部オフにする
 

ざっと説明しておくと、「Assign primary keys to all entities」はテーブルの主キーフィールドをどのフィールドなのかを指定するダイアログボックスが後から出てくる。OpenBaseだとテーブルを新規に作成すると、自動的に連番が入力される主キーフィールドが設定され、その主キーはモデル定義ファイルでも自動認識されるから、特に主キーを指定する必要はない。データベースエンジンによっては定義した主キーの設定が認識されないので、手動で主キーを設定する場合が出てくるのである。
「Ask about relationships」はもちろん、2つ以上のテーブルをモデルに組み込む時の設定である。リレーションの設定はWizardだけでなく、モデルを作ってからでも行えるので、これもやはりケースバイケースだ。
「Ask about tored procedures」はもちろん、データベースにストアドプロシージャが定義されている場合、どのストアドプロシージャをモデルに含めるかを指定するためのものである。ストアドプロシージャがない場合やあってもアプリケーションで使わないのなら、チェックを入れる必要はない。
「Use Custom Enterprise objects」は、EOFの1つの機能であるカスタムオブジェクトとしてすでに定義をしたものを利用する場合に指定する。カスタムオブジェクトを使用しない場合にはチェックはいらない。

前のダイアログボックスでNextをクリックすると、次に、モデルに取り込むテーブルを指定するダイアログボックスになる。今回は1つだけのテーブルだが、もちろん、複数ある場合には取り込むテーブルを選択するという作業が必要になる。今回はこれが最後のダイアログボックスなので、Finishをクリックする。

◇モデルに取り込むテーブルを指定するダイアログボックス
 

以上でWizardは終了し、EOModelerの文書ウインドウが開く。EOModelerでは、テーブルを定義してフィールドを作成し、その結果に応じてデータベースにテーブルを作成できるなど、データベース管理ツールとしても利用できるのであるが、最初からテーブルを作ってあるような場合、おおむね、最初のWizardで必要な設定が出来上がっている。すでに、左側にPersonaladdressという項目が見えるが、これは定義されたテーブルであることを示している。

◇出来上がったモデル定義ファイル
 

左側のPersonaladdressを選択すると、右側にはこのテーブルに定義されているフィールドが一覧される。もちろん、OpenBaseManagerでの指定とおりではあるが、最初から作られる_RowIDフィールドはここでは_Rowidとなっているし、_timestampフィールドは見えていない。今回のアプリケーションではこの点は問題はないので、特に気にすることはない。

◇モデル定義にあるテーブルの定義を見る
 

ここで保存と行きたいのだが、このまま保存をすると、勝手に名前をつけているRowidフィールドについて、先頭が大文字なのは良くないという意味の警告メッセージが出る。だから、このフィールドの名前はrowidと変更しておく。フィールド名の部分をダブルクリックすると、編集可能な状態になるので、そこでキータイプしておけばよい。

◇フィールドの名前を変更する
 

そして、FileメニューからSaveあるいはCommand+Sなどでファイルを保存しておく。ここでは、とりあえずどこかに保存するのでかまわない。「プロジェクトと同じフォルダじゃないとだめなのじゃないか」と思うかも知れないが、次回での作業を行うために、すでにプロジェクトを用意してしまった人は、プロジェクトの外のとにかく適当な場所に保存をしておいてもらいたい。もちろん、プロジェクトの中でも何とかなるのだが、いろいろ作業をしてみて、とりあえず、モデルファイルはプロジェクト外にいったん保存するというのが適しているようなのである。

◇とりあえず、モデル定義ファイルを保存しておく
 

これでモデル定義ファイルが作成できたので、今回はこれまでということにしたいが、次回に移る前に、ここで使っている住所録のテーブルに2つほどレコードを作成しておいてもらいたい。最初の作業で何もデータがないと作業がやりにくいからだ。ここで、もちろん、日本語の名前を入れたいという欲求があるのだが(笑)、まずは問題を複雑にしないために、アルファベットあるいは数字で適当なデータを入力しておいてもらいたい。

まず、OpenBaseManagerを起動して、データベースのAddressを選択し、右側にある「データ一覧」ボタンをクリックする。
 

すでにパスワードを設定したので、adminのパスワードをここで1度は入力しなければならないはずである。
 

次のようなウインドウが表示される。左側でテーブル名の「PersonalAddress」を選択すると、右側にカラム一覧が出てくるはずだ。そして、Addボタンをクリックすると、とにかくレコードが1つ追加される。_rowidフィールドに連番が自動的に設定される。そして、その他のカラムでは、該当する部分をダブルクリックすることで、キー入力が可能になるので、適当にデータを入力しておく。
 

以上のようにして、テスト用のデータを入力しておいてもらいたい。もちろん、きちんと入力してもらっても一向にかまわないが、とりあえず1バイト文字ということにしておこう。
関連リンク