2014年11月4日火曜日

分離モデルってどうなの?

今回はFileMaker(ファイルメーカー)の話です。

分離モデルという名称を誰かが名づけたFileMakerソリューションの作成方法があります。

ファイルを二つに分け、一方にレイアウトだけの要素を持たせデータを格納させず、もう一方はデータを格納するというものです。

私もFileMaker11時代に、一日に4,000件弱、年間130万件のレコードが増えるテーブルを持つシステムを作ることがあり、このシステムにはMAX30程度のアクセスがあるものでした。

このシステムはもともとこれくらいの規模になることは想定していましたが、私も初めての規模でしたので、データベースが壊れた場合、レコード件数が増え重くなってしまった場合、システムを改良するのにいい方はないかなど考えた結果、ファイルを二つに分けてみることにしました。


・メリット
データ破損時に修復が楽
ソリューションを変更する際に、テスト環境にあるファイルをコピペで済む場合がある

・デメリット
アクセス権の設定が面倒
ファイルの管理が面倒
両方のファイルにリレーションなどを設定しなくてはいけない。
1つのスクリプトで済むことが、2つになることがある。
2つのファイルを行き来しながら設定を変えたりしなければならない

思いつくメリットでデメリットを挙げてみましたが、
私の中では、「好みの問題」だなとこのシステムを運用して思ってしまいました。

例えば、システムの何かを変更するときに一番失敗するのが、私の場合アクセス権の設定ミスだからです。
大体、テーブルを追加したり、フィールドを追加したりといった変更を加えた場合、二つのファイルのアクセス権をそれも複数のアクセス権セットを変更するといった作業は、私にとってカオスな作業です。

よく変更後に、「アクセス権がありませんって表示されるんだけど」と言われます。

とにかく設定・管理が面倒なので最近は私は取り組んでいません。

また、FileMaker12からプログレッシブバックアップも登場し、データベースの損傷に対する対応策は充実し始めています。

バックアップを適切に管理し、
ゴールデンマスター(不具合のない空のデータベース)をしっかり管理していれば、
データが破損した場合にも迅速に対応できるのではないかと思います。

FileMakerのファイル構造がデータと、その他の部分で分離されていれば問題ないんですが。

FileMaker Proのメニューに「ファイルを別名で保存」というコマンドがあり、データのないコピーというのが選択できます。

結構大きなデータベースも一瞬で、この作業が完了するところを見ると、内部的には分離しているような感じなので、あとはFileMaker社の方針だけでしょうか?

あとは、ジャーナルを生成する機能でもあればかなり楽になります。

ちょっと勝手に書いてみましたが、分離モデルはメリット、デメリットをうまく理解し、規模やシステムの性質などで選択するのがいいのではないでしょうか。