はじめに:主キーをどう決めるか問題
FileMakerでデータベースを作り始めると、ほぼ必ずぶつかるのが「主キー(レコードを一意に識別するID)をどうするか」という問題です。
番号を1から順番に振るだけなら簡単ですが、次のような不安や課題が出てきます。
- 複数人で同時に入力したときに番号が重ならないか心配
- あとで別ファイルや別システムと連携するときに、番号だけで本当に大丈夫か不安
- 途中でデータをインポートしたときに、番号の重複を気にしたくない
そこでおすすめなのが、Get(UUID) 関数と自動入力を使った主キー設定です。UUIDを使えば、重複をほぼ気にせずに安全な主キーを自動で発行できます。
UUIDとは?主キーに向いている理由
UUID(ユー・ユー・アイ・ディー)は「Universally Unique Identifier」の略で、「世界中でほぼ重ならないように作られたID」のことです。
FileMakerでは Get ( UUID ) でこのIDを簡単に作ることができます。
UUIDを主キーに使うメリットは、次のような点です。
- 重複しにくい:桁数が長く、同じ値が生成される確率が非常に低い
- 意味を持たない:日付や通し番号を含まないため、情報漏えいリスクが減る
- 分散環境に強い:複数のファイルや他システムと連携するときでも、IDのバッティングを気にしなくてよい
- 自動入力に向いている:レコード作成時に勝手に発行されるので、人が気にしなくてよい
見た目は「6F9619FF-8B86-D011-B42D-00C04FC964FF」のような長い文字列になりますが、ユーザーに見せる必要はありません。
ユーザー向けの「管理番号」や「受付番号」は別フィールドで用意し、UUIDは裏方の「システム用ID」として割り切るのがおすすめです。
主キー用UUIDフィールドを作る手順
ここからは実際に、UUIDを自動入力する主キーを作る手順を、できるだけ分かりやすく解説します。
1. 主キー用のフィールドを作成する
- レイアウトに関係するテーブル(例:顧客テーブル)を開きます。
- [ファイル]メニューから[管理]→[データベース]を選びます。
- [フィールド]タブで、対象テーブルを選びます。
- 新しいフィールド名に、例として
id_customerや主キーなどを入力します。 - タイプは テキスト を選択し、[作成]をクリックします。
UUIDは文字列なので、フィールドタイプを「テキスト」にしておくのがポイントです。
2. 自動入力でGet(UUID)を設定する
- 作成したフィールド(例:
id_customer)を選択した状態で、[オプション]ボタンをクリックします。 - [自動入力]タブを開きます。
- [計算値]にチェックを入れて、[指定]をクリックします。
- 表示された計算式のウィンドウに
Get ( UUID )と入力します。 - 必要に応じて、[空白の場合は計算しない]のチェックを外し(デフォルトでオンの場合)、空白でも必ずUUIDが入るようにします。
- 右下の[OK]をクリックして、さらにフィールドオプションも[OK]で閉じます。
これで、新しいレコードを作成するたびに、このフィールドにUUIDが自動で入るようになります。
3. 一度入ったUUIDは変えさせない
主キーは一度決まったら、基本的に変わってほしくありません。そのために、次の設定も確認しておきましょう。
- フィールドオプションの[自動入力]タブで、
[既存の値を置き換えない]にチェックを入れておきます。
これで、すでに値が入っているレコードでは、再計算などで勝手にUUIDが変わることを防げます。
レイアウトでは主キーを隠して使う
UUIDは見た目が長く、ユーザーが手入力するようなものではありません。レイアウトでは、次のように扱うと運用しやすくなります。
- 主キーのフィールドはレイアウトに配置しない、または配置しても非表示にする
- 検索やソートには使わず、あくまで「紐付け用」「システム用」と割り切る
- ユーザーに見せる番号(顧客番号、伝票番号など)は別に作り、見た目も分かりやすい形式にする
こうすることで、「裏では安全なUUIDでレコードを識別しつつ、表では読みやすい番号で運用する」というバランスのよい設計ができます。
既存の連番主キーからUUIDに切り替えるときの注意
すでに「1, 2, 3…」のような連番で主キーを運用している場合でも、将来の拡張に備えてUUIDに切り替えたくなることがあります。
その場合は、次の点に注意しましょう。
- 既存の連番フィールドはそのまま残し、「旧ID」や「表示用番号」として扱う
- 新たにUUIDフィールドを作り、レコード全体に一括でUUIDを振るスクリプトを用意する
- リレーションの主キー・外部キーを切り替えるときは、テスト用のコピーで十分に検証する
特にリレーションが複雑なファイルでは、主キーの切り替えは慎重に行う必要があります。テスト用ファイルを作り、バックアップを取りながら段階的に進めることが重要です。
まとめ:UUID+自動入力で「迷わない主キー設計」を
FileMakerの主キーをどう設計するかは、システムを長く運用できるかどうかを左右する大事なポイントです。
Get(UUID) と自動入力を組み合わせた主キー設計にしておけば、
- 同時入力やデータ移行のときもIDの重複を気にしなくてよい
- 他システムとの連携にも対応しやすい
- ユーザーには見せず、「裏方の安定したID」として安心して使える
という、扱いやすくて壊れにくいデータベースに近づきます。
これから新しくFileMakerのファイルを作る方はもちろん、既存システムの見直しのタイミングでも、UUID主キーへの切り替えを検討してみてください。