タイトルWebObjects 5とOpenBaseを使ってみる/3.OpenBaseでデータベースを定義する(2)カテゴリーデータベース, WebObjects
作成日2001/8/6 14:45:10作成者新居雅行
こうしてデータベースを作成すると、OpenBaseManagerのウインドウに項目として加わる。作成した直後は稼動していないので、ここでは作成したデータベースのAddressをクリックして選択し、右側のSTARTボタンをクリックしてデータベースを稼動させておこう。

◇作成したデータベースを稼動させる
 

続いて、作成したデータベースに対して、テーブルを定義することにする。こうしたスキーマの定義は稼動しているデータベースに対してしかできない。ここでは、稼動させたAddressデータベースを選択し、右側の上から5つ目の「スキーマ定義」のアイコンをクリックする。

◇スキーマ定義のアイコンをクリックする
 

すると、次のようなウインドウが表示される。作成したばかりのデータベースには、ユーザから見えるものは何一つ存在しない状態になっている。

◇スキーマ定義のウインドウ
 

ここで、ウインドウのツールバーにあるTablesと書かれた部分の「+」マークのアイコンをクリックする。これが、テーブルを追加するアイコンだ。すると、次のようなダイアログボックスが出てくるので、ここではとりあえず新しいテーブル名として「PersonalAddress」という名前を設定しておいた。

◇テーブルを新たに作成する
 

とりあえずテーブルを作成すると、次のように、キーフィールドとなる_rowidフィールドなどが作成される。とりあえず削除する必要もないが、_rowidフィールドは自動的に連番が入力されることは知っておく必要があるだろう。

◇新しいテーブルを作成した直後
 

テーブルに関する作業はまだ続けるが、先に「必ず保存作業が必要」ということを説明しておこう。保存をしないでウインドウを閉じると、変更結果はどこにも反映されないままになってしまう。変更すると、左上のSaveボタンをクリックして、必ず変更結果を保存しなければいけないのである。

◇Saveをクリックして必ず変更結果を保存しておく
 

続いてカラムを追加しよう。すでに分かるように、ウインドウ上部のツールバーにあるColumnsの上の「+」ボタンをクリックすることで、リストにカラムが追加される。最初はnew_Fieldという名前になっているが、もちろん、違う名前にすればよい。

◇カラムを新たに追加した
 

そして必要なカラムを確保するわけだが、ここでの細かい操作は割愛する。「+」ボタンでカラムが増えるが、名前や長さなどはその部分をダブルクリックすることで編集することができるので、後からでも設定などは変更できる。もちろん「−」ボタンで選択しているカラムを削除することができる。とりあえず、これだけのカラムを用意した。いずれも文字列(char)型であるが、長さは適当に確保した。

◇カラムを追加した
 

なお、カラムのタイプは次のように、タイプ名の部分をクリックすることで表示されるポップアップメニューで選択ができる。文字列は通常はcharだが、4096バイトまでの制約がある。ただし、WebObjectsとの利用では、255バイト以上のときに文字列がそのまま格納されないという問題があるので注意が必要だ。数値や日付けなどのデータをカラムに記録するのなら、それぞれ適切なタイプを選択しておく必要がある。

◇タイプはポップアップメニューから選択する
 

さらにはインデックスを作成するかどうかや、レコードを新規に作成したときのデフォルトの値、Nullを許可するかどうかといったテーブルのカラムに対する基本的な設定もできるようになっている。

◇インデックスの作成もポップアップメニューから選択できる
 

そして、もちろん、Saveボタンをクリックして保存をしておく。これを忘れてはいけない。

続いて、ユーザの登録などを本来は行う。OpenBaseは既定の状態ではユーザ名やパスワードを入れなくてもアクセスができるようになっているのであるが、たとえ開発だからということであっても、データベースのユーザ設定はアクティブな状態で作業をすることをお勧めする。もちろん、自信のある方はかまわないのだが、ユーザ名などを指定しないでアクセスできる状態で開発を行い、いざ稼動となって認証を必要にしてしまったときにデータベースにアクセスが思うようにできないということでは大いに困ってしまう。最初からユーザというものを意識しながら開発を行うのがとにかく後から困ることがないと思うので、ユーザの設定を行おう。
とは言いながらも、今回は非常に簡単な設定で済まさせてもらう。OpenBaseには最初からAdminというユーザが設定され、そのユーザにはパスワードが設定されていない。とりあえず、ここではAdminにパスワードを設定して、とりあえずはこのユーザ名でアクセスを行うことにある。
OpenBaseManagerの上から3つ目の「ユーザマネージャー」のアイコンをクリックすると、次のようなウインドウが表示される。ここで、グループやユーザを新たに追加したりなどができるが、ここではすでにあるadminグループのadminユーザを選択する。そして、set passwordボタンをクリックする。

◇adminユーザをユーザマネージャーで呼び出す
 

次のような古いパスワードを問い合わせるダイアログボックスが出てくるので、最初はパスワードは設定されていないから、ここでは空欄のままOKボタンをクリックする。続いて新しいパスワードを問い合わせる同じようなダイアログボックスが2回出てくるので、それぞれ新しいパスワードをキータイプする。もちろん、ここでキータイプしたパスワードは忘れないように、メモするなどしておこう。パスワードが変更されたこともダイアログボックスで知らせる。

◇パスワードを問い合わせるダイアログボックス
 

パスワードが設定されると、パスワード欄に・・・・が入る。Doneボタンをクリックすると、このウインドウは閉じられる。

◇パスワードを設定した状態
 

こうしてadminにパスワードをかけると、たとえばスキーマの定義を変更するような場合でも、最初の1回はパスワード入力が必要になる。不便と言えば不便なのだが、ユーザ管理を避けないでデータベースを開発していく方が、後々のことを考えると望ましいと思われる。

以上、OpenBase SQL側を操作して、1つのテーブルを含むデータベースを定義し、adminユーザにパスワードをかけた。もちろん、複雑なアプリケーションだともっとたくさんのテーブルを定義、さらにはリレーションの定義なども行うことになるだろうが、操作の上ではこれまでに説明してきたことの延長である。次回はいよいよ、WebObjectsの作業に入ろう。
関連リンク