2004年12月20日

Table Occurrence

FileMaker Pro 7 でのデータベース設計についていろいろ調べているうちに、"Table Occurrence" という概念の理解と活用が不可欠であるように思えて来ました。

"Table Occurrence (略してTO)" については、日本語のヘルプの中では明確に定義もなく、また翻訳もそのときどきに応じて「テーブルの別の名前」とか「固有の名前を持つ新規のテーブル」というように訳されていて、いまひとつ要領を得ません。

※ところで日本語ヘルプの「リレーションシップグラフについて」のセクションの翻訳はひどいですね。原文で "Because the graph is never a cycle," (グラフはループを作ることはできないので、) という文章が、「グラフの表示を切り替えることはできないため、」と訳されていて、全く意味が通じません。

※"Table Occurrence" はどのように訳すのがいいでしょうか。Mac OSを使っている方には「テーブルのエイリアス」というのがイメージをつかみやすいかもしれません。何か良い訳語はないでしょうか? 現実的にはTOで通してしまう事になるのでしょうが、FileMaker Pro 7 を理解する上での大切な概念ですので、ぜひわかりやすい訳語をつくりたいものです。


TOとは、FileMaker Pro 6 でリレーションに名前をつけて管理していたものに替わる概念です。リレーションシップグラフでテーブル間のリレーションを定義するとき、実体としてのテーブルに別の名前をつけて定義する事が出来ます。これが TO です。FileMaker Pro 7 ではリレーションは、このTO名で管理されます。

それではなぜ従来のやり方ではなく、TOが必要なのでしょうか?

FileMaker Pro 6 では「一方向」だけだったリレーションが、FileMaker Pro 7 ではすべて「双方向」に動作するようになりました。また、リレーションはループを描くように定義する事が出来なくなりました。

FileMaker Pro 6 では テーブルA -> テーブルB のリレーション(「リレーション1」とします)と、それとは別の B->A のリレーション(「リレーション2」)を、それぞれリレーションに名前をつけて定義できたのですが、FileMaker Pro 7 のリレーショングラフでこれをやろうとすると、A<->B間のリレーションがループを描くことになってしまうため、定義できません。(無理に定義しようとすると、A<->Bのリレーションは「リレーション1とリレーション2を複合したもの」になってしまい、本来やりたかったものとは全く違うリレーションになってしまいます)

では FileMaker Pro 7 ではどうすればよいのでしょうか。

まず、テーブルAのTOすなわちA1を定義します。続いてテーブルBのTOすなわちB1を定義します。そしてA1とB1の間に「リレーション1」を定義します。

さらに、テーブルAの新たなTOすなわちA2と、テーブルBの新たなTOすなわちB2を定義します。そしてそのA2とB2の間に「リレーション2」を定義します。

※文章だけでは判りづらいかもしれません。ぜひ自分でやってみてください。


posted by Kojima at 18:34| Comment(0) | TrackBack(2) | 覚え書き | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック

Table Occurrence その2
Excerpt: さて、ここまでの基本を理解したら、今度はこれをどのように活用するかが大切です。 ”Knockin'on Seven's Door” という、FMP7の開発者向け情報ポータルサイドがあります。ここで、..
Weblog: FileMaker Pro 7 によるWeb開発覚え書き
Tracked: 2004-12-20 19:01

「リレーションで極めるファイルメーカー7」第6章 リレーションからコンテキストへ
Excerpt: 松尾さんの FAMLog を見て知りましたが、「リレーションで極めるファイルメーカー7」の著者である新居さんが、その追加分「第6章 リレーションからコンテキストへ」を公開されています。 http:/..
Weblog: FileMaker Pro 7/8 によるWeb開発覚え書き
Tracked: 2006-08-15 09:49
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。