ついに壁を乗り越えた

いやあ長い時間がかかりました ついに高い高い壁を乗り越えることに成功したと思います

関係データベースにおいてその性能をもっとも発揮するのは、「多」対「多」のデータ構造に対するデータの出し入れでしょう

例えば、鎌倉ライブデモンストレーションでは一コマ 1時間15分から1時間30分ぐらいの「コマ」にプログラムを分割します。この「コマ」のことを session と呼ぶことにします。そして、各 sessionには属性として、{begin}, {end}, {title}, {description}, {sponsor}があります。これはそれぞれ意味するところは、開始時刻、終了時刻、そのコマのタイトルあるいは概念、そのコマの説明、スポンサー ということになります。各sessionには「司会」「討論者」「演者」「術者」などを配置せねばなりませんが、これらは何れも「人」であります。

従って、総括的に言えば、各sessionに対して何人もの「人」を関係付けねばならないのです。そこで、この sessionというデータの塊、これを tableと呼ぶのですが、sessionというtableが組みする「人」というtableを作る必要があります。

ここでは、doctorという名前の tableにしましょう。ここで最初に修正します。sessionやdoctorというテーブルには属性の塊がつまっているので、単数形よりも複数形の方が意味が通じやすいですよね。そこでこれらのテーブルに名称を sessionsと doctorsという複数形にします。これらのテーブルから一つのデータ塊を取り出せば、それぞれ sessionと doctorという単数形の呼び名になりますね。

鎌倉ライブデモンストレーションのプログラムを考えてください。朝から夜までいくつもの sessionsがあり、それぞれに参加する人々も複数 つまり doctorsあります。つまり「多くの」sessionと、「多くの」doctorsが意味的につながっている(関係している)のです。これが「多」対「多」の関係データベースということになります。

この関係を矛盾なく維持することは非常に難しく、2つのテーブルの間に、一つ中間テーブルを入れることが普通です。つまり、「多」対「一」 <–> 「一」対「一」 <–> 「一」対「多」というデータ構造にすることにより、結果的に「多」対「多」のデータ構造を実現するのです。

これを Laravelにより実現する方法が分からなかったのです。生の SQL/phpを使用すればこれまで何回も行ってきたので簡単です。でもこの数カ月間 Laravelを習得するために多大な時間、精神力、頭脳などを使ってきたのです。今更諦める訳には行きません。

そしてたった今実現しました。その証拠の snapshotがこれです

投稿者: Dr_Radialist (KAMAKURA & SAPPORO)

The most experienced coronary and valvular interventional cardiologist in the world.

コメントを残す

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

CAPTCHA