【Airtable】レコードを代表する「顔」なのだ: Primary Field(その2)
前回の記事の続きです。先に前半の記事からご覧ください。
Primary Fieldが『レコードの「顔」』であるならば、それに「ふさわしいフィールド型」で、かつ「ふさわしい値」を格納しなければならない、とお話ししたところで前半の記事が終わりました。
この後半記事では、それらが何かお話ししますよ~😄。
Primary Fieldで選べるフィールド型
では、まずPrimary Fieldで選べるフィールド型は何か確認しましょう。
合計13種のフィールド型を選ぶことができます。次の通りです。
Single line text
Long text
Date
Phone number
URL
Number
Currency
Percent
Duration
Formula
Autonumber
Barcode
Primary Fieldでなければ、28種類から選択できます。やはり、チェックボックスとかSingle selectとか、値が重複することが前提となるフィールド型、Attachmentのような、そもそもテキストでない値を格納するフィールド型は、選べません。
それでも、13種類も選べるわけですが、ほとんど「レコードの顔」として使える気がしませんね。Percentageなど、一応、選ぶことができるということですけどね。
Single line textじゃだめ?
じゃあ、何を積極的に使いましょうか。
「Single line textかな~🤔」
そうですよね。それが無難かと思います。当面、それでもいいかもしれません。
でも、前半記事でお話ししたように、主キーとしての意味合いをPrimary Fieldに持たせるわけです。要するに、複数のレコードに同じ値が入っては困るのです。例えば、氏名などをPrimary Fieldにしてしまうと、もしかすると複数のレコードに同じ値が入ってしまうことがあり得ますね。
Numberじゃだめ?
「なら、Numberだったら?機械的に番号を与えれば、重複しないでしょ?🤔」
するどい!確かにそのとおりです。番号でいい場合も多いでしょう。でも、こちらの場合は、「レコードの顔」という役割が十分に果たせなくなります。
例えば、参照先のレコードが何かを示すカードとして、「4873047」が示されていたとして、何のレコードか分かりませんね?
「じゃあ、どうすんのよ!?😑」
そこで、Primary Fieldが、主キーとして、かつ、「レコードの顔」として機能できるように、Airtable社は次の方法を提案しています。
Formulaフィールドを使ってみよう
例として、学生リストを使います。あるフィールド(Single line text)には、学生の名前が入っています。一方、もう一つのフィールド(Number)には、学生番号が入っています。
「レコードの顔」「主キー」どちらの性質も必要です。かくなる上は、、、組み合わせちゃいましょう😆!
新しくFormulaフィールドを設置します。その式は、「学生番号ー氏名」となるように指定します。
できた~。先に番号があり、その次に氏名がある。これな重複の心配はないし、誰のレコードかすぐに判別できますね~😄
そして、Primary Fieldを、作ったばかりのFormulaフィールドに設定すれば、完成でございます~。
(Primary Fieldの切り替えが実はちょっと複雑なのですが、その解説は、、、後日に譲ります。)
データベース的には不自然??
ということで、うまくいきました。しかし、データベースを使う方には、この設定も違和感があるかもしれませんね。
というのは、このFormulaフィールドは、計算によって値を取得しています。ようするに、「値の実体を持っていない」のです。計算によって得られる値をフィールドに入れないのが、データベースの原則になっています(計算はフロント側でやってね、ということになります)。
こんなとこからも、Airtableは、スプレッドシートとは言い切れない、さらにデータベースとも言い切れない性質を持っているんだな~と感じてしまいます。すみません、個人の感想です😅。
まとめ
Primary Fieldのフィールド型として選べるものは、13種に限られる。
無難なものは、Single line textやNumberとなる
ただし、主キーの性質と、「レコードの顔」を両方持たせるなら、Formulaフィールドを使うとよい。
では、ビーダゼーン!
※私のやる気アップとブログの品質向上につながりますので、記事が気に入られた方は、「ポチっ」と好きボタンを押してくださったり、フォローいただけますと幸いです🙇。