INTER-Mediator Lab. - Room 1
ある駅には、マクドナルドや吉野家といったチェーン店があるとします。別の駅では、最初の駅と同じくマクドナルドがあるかもしれませんが、また別のチェーン店があるかもしれません。このような状況をデータベースに記録するために、以下のように3つのテーブルを用意しました。駅やチェーン店はもちろん、もっとたくさんありますが、その一部がデータになっていると考えてください。なお、チェーン店名は実在のものですが、駅に存在するかどうかの情報は架空のものです。
駅名を記録した主キーフィールドがstation_idのテーブル「station」は以下の通りです。
| station_id | station_name |
|---|---|
| 101 | 東川口 |
| 102 | 北朝霞 |
| 103 | 東松戸 |
| 104 | 北府中 |
チェーン店名を記録した主キーフィールドがchain_idのテーブル「chain」は以下の通りです。
| chain_id | chain_name |
|---|---|
| 501 | マクドナルド |
| 502 | モスバーガー |
| 503 | スターバックス |
| 504 | ドトールコーヒー |
以下のようなテーブル「association」があるとします。主キーフィールドは「id」です。このテーブルにある、station_idと、stationテーブルのstation_idとに入力する数値に関して、同一のものが対応付けられています。同様に、このテーブルのchain_idと、chainテーブルのchain_idフィールドの値が対応付けられています。たとえば、id=2のレコードは、station_id=101なので、stationテーブルより「東川口」駅に関する情報であることが分かり、さらにchain_id=502なので「モスバーガー」であることが分かります。このようなテーブルを作る事で、東川口駅にはモスバーガーがあることが記録できています。同様に、id=3〜5のレコードが存在することで、station_id=102より「北朝霞駅」には、chain_id=501, 503, 504がそれぞれ存在するので、マクドナルドとスターバックス、ドトールコーヒーがあることが記録されています。なお、station_id=104に対応する北府中駅のレコードがassociationテーブルにはなく、この駅の周辺にはこれらのチェーン店がまったく存在しないこともこのテーブルの内容から判断できます。
| id | station_id | chain_id |
|---|---|---|
| 1 | 101 | 501 |
| 2 | 101 | 502 |
| 3 | 102 | 501 |
| 4 | 102 | 503 |
| 5 | 102 | 504 |
| 6 | 103 | 501 |
| 7 | 103 | 502 |
| 8 | 103 | 504 |
このとき、すべてのチェーン店に対して、それらが存在する駅名の一覧を表示するページを作りたいとします。駅名の一覧では、station_idフィールドの値と駅名を表示するとします。まず、次のようなコンテキストを定義ファイルに記述します。定義ファイルの空欄を埋めてください。なお、記述が不要な箇所は「記述不要」と記入してください。
name: station
key:
relation:
-
name: chain
key:
relation:
-
name: association
key:
relation:
前述の定義ファイルを利用するページファイルを作ります。ヘッダ部とBODY要素に記述する内容はすでに記述されているとして、テーブルの見出しに対応したデータが表示されるように、空欄を埋めてください。
<table>
<thead>
<tr><th>チェーン店名</th><th>駅名</th></tr>
</thead>
<tbody>
<tr>
<td class=""></td>
<td>
<table>
<tr>
<td>
<span class="IM[association@station_id]"></span>
<span class="">
<span class="_im_repeater">
<span class=""></span>
</span>
</span>
</td>
</tr>
</table>
</td>
</tr>
</tbody>
</table>
解答し終わったとき、以下のラジオボタンのいずれかを選択して、「解答した」ボタンをクリックしてください。
この問題を解くのにどれくらいの労力がかかったでしょうか?
←クリックすると、次のページに移動します。