FileMakerで顧客管理や在庫管理などのデータベースを作るとき、多くの人が最初に悩むのが「主キー(ID)をどうやって付けるか」です。連番で「1, 2, 3…」と採番するやり方がイメージしやすい一方で、複数人で同時に入力したり、別ファイルからデータをまとめたりすると、番号がぶつかったり、重複したりするリスクがあります。
そこでおすすめなのが、FileMakerの Get ( UUID ) を使った主キーの自動採番です。見た目は少し長くて難しそうに感じますが、仕組みを知ってしまえばとても簡単で、運用も安心・安全になります。
この記事では、難しい専門用語をできるだけ避けながら、「なぜUUIDが良いのか」「どうやって設定すればよいのか」を、ステップごとに解説します。
主キーとは?なぜ大事なのか
主キーとは、レコード(1件のデータ)を一意に識別するための「ID番号」のことです。顧客テーブルなら「顧客ID」、商品テーブルなら「商品ID」といったイメージです。
主キーが大事な理由は、次のような場面で必ず使われるからです。
- 他のテーブル(例:受注テーブル)から顧客を参照するとき
- 関連レコードを表示したり、ポータルで一覧表示したりするとき
- 後からデータを移行したり、別のファイルと統合したりするとき
この主キーが途中で変わってしまったり、重複してしまうと、関連付けが崩れたり、データの整合性に問題が生じます。そのため、「一度決めたら変えない」「他と絶対に重ならない」IDを付けることが重要になります。
従来の連番主キーの問題点
FileMakerでは昔から、「番号」型のフィールドでシリアル番号(連番)を自動採番する方法がよく使われてきました。シンプルで分かりやすい反面、次のような注意点があります。
- バックアップから戻したときに、連番の途中で「かぶり」が起きる可能性がある
- 複数のファイルやシステムからデータを統合するときに、番号が競合しやすい
- 一部のレコードを削除しても、番号が詰まらない(気になる人も多い)
- 手動でレコードを複製したとき、主キーもコピーされてしまい、重複を起こす
小規模・単独利用であればそれほど問題にならないこともありますが、ユーザー数が増えたり、将来的にシステムを拡張したくなったときに、主キーの設計が足かせになることがあります。
UUIDとは?Get ( UUID ) の基本
UUIDとは「Universally Unique Identifier(ユニバーサル一意識別子)」の略で、「世界中でほぼ重複しないように作られたID」のことです。FileMakerには、このUUIDを発行するための関数 Get ( UUID ) が用意されています。
UUIDの例:
6F9619FF-8B86-D011-B42D-00C04FC964FF33F2504E-48F1-101B-98B5-715E456DFF00
パッと見て意味は分からなくても構いません。大事なのは、次の2点です。
- 自動でランダムなIDを生成してくれる
- ほぼ二度と同じIDが発行されない(=重複しないとみなせる)
この「重複しない」という特性のおかげで、複数人で同時に入力したり、複数のファイルからデータをまとめたりしても、主キーがぶつかる心配がほとんどなくなります。
Get ( UUID ) を使った主キー自動採番の設定手順
ここからは、実際にFileMakerでUUIDを主キーにする方法を、手順に沿って説明します。すでにテーブルをお持ちの場合でも、新規に作る場合でも、基本的な流れは同じです。
1. 主キー用フィールドを作成する
- レイアウト上で対象のテーブルを確認しておきます(例:顧客テーブル)。
- メニューから「ファイル」 > 「管理」 >「データベース…」を開きます。
- 「フィールド」タブで、対象のテーブルを選択します。
- 新しいフィールド名を入力(例:
id_顧客やid_Customerなど)。 - フィールドタイプは「テキスト」にします。※UUIDは文字列なので「テキスト型」が推奨です。
- 「作成」をクリックしてフィールドを追加します。
2. 自動入力オプションでGet ( UUID ) を設定する
- 作成した主キー用フィールドを選択した状態で、「オプション…」ボタンをクリックします。
- 「自動入力」タブを開きます。
- 「計算値で入力」にチェックを入れます。
- 「指定…」ボタンをクリックして計算式の編集画面を開きます。
- 計算式に
Get ( UUID )と入力します。 - 「既存の値を置き換えない」にチェックを入れておきます。これにより、既に値が入っているレコードでは、計算による自動入力で主キーが上書きされるのを防げます。
- OKで閉じて、さらにもう一度OKでフィールドオプションを確定します。
新規レコードを作成するたびに、自動的にUUIDが主キーとして採番されるようになります。レイアウト上でこのフィールドを編集不可にしておけば、ユーザー操作で書き換わる心配もありません。
3. レイアウトで主キーをどう扱うか
主キー(UUID)は通常、ユーザーが直接見る必要はありません。レイアウトからは非表示にしておくのが一般的です。
- レイアウト上から主キーのフィールドを削除しても構いません(フィールド自体はテーブルに残ります)。
- 「データ」タブで「参照のみ」に設定して、ユーザーが編集できないようにしておくと安全です。
UUIDはあくまで「内部的な識別用のID」と考え、画面上には見やすい管理番号や顧客コードなど、別のフィールドを用意して表示する構成が運用しやすくなります。
UUID主キーのメリットと運用上のポイント
UUID主キーの主なメリット
- 重複しない安心感:複数ユーザー・複数拠点・複数ファイルでも主キーの競合をほぼ心配せずに済みます。
- データ移行・統合が楽:将来、別ファイルや別システムと統合する際に、IDの重複によるトラブルが起こりにくくなります。
- 削除や並べ替えの影響が少ない:レコードを削除してもUUIDは関係ないので、途中の番号が飛んでいても問題になりません。
- レコード複製時の事故を防ぎやすい:新規レコード作成時に自動入力されるため、複製ではなく「新規レコード」を使う運用にしておけば、主キー重複のリスクを減らせます。
運用上の注意点・コツ
- 主キーはユーザーに見せない・触らせない
レイアウトには基本的に表示せず、どうしても表示する場合も「編集不可」にしておきます。 - 途中で主キーを変更しない
作成後に主キーを変更すると、関連テーブルとのつながりが壊れてしまいます。スクリプトなどで書き換えないように注意します。 - 連番が必要なら別フィールドで
「見た目の管理番号」や「顧客コード」は別のフィールドを作成し、必要に応じて計算やスクリプトで管理します。主キーはUUIDのまま固定しておきましょう。
既存の連番主キーからUUIDに移行するときの考え方
すでに連番の主キーで運用している場合でも、将来の拡張を見据えてUUIDに移行したいケースがあります。その場合は、次のような手順と考え方が参考になります。
- 新たにUUID用のフィールド(テキスト型)を追加し、自動入力で
Get ( UUID )を設定する。 - 既存レコードには、スクリプトや置換機能を使ってUUIDを一括で採番する。
- リレーションを順番に見直し、徐々に新しいUUIDフィールドを主キー・外部キーとして使うように切り替えていく。
- 十分にテストし、問題がないことを確認してから、旧主キーを「論理的に廃止」する(フィールド自体は残しつつ、リレーションでは使わない運用にする)。
いきなりすべてを切り替えるのではなく、「新旧の主キーをしばらく併用しながら、段階的にUUIDに移行する」というイメージで進めると、トラブルを減らすことができます。
まとめ:これからのFileMaker開発はUUID主キーが基本
FileMakerで長く運用するシステムを作るなら、主キーの設計はとても重要です。連番は分かりやすい反面、将来的な拡張やデータ統合のときに悩みの種になることがあります。
Get ( UUID ) を使った主キー自動採番は、
- 設定が簡単
- 重複しにくく安全
- 将来の拡張にも強い
といった多くのメリットがあり、現在のFileMaker開発では「基本の設計」といってよい考え方です。これから新しくデータベースを作る方はもちろん、既存システムを見直したい方も、一度UUID主キーの導入を検討してみてください。