Fuya.info

この記事の投稿日は、 2022/2/18 です。内容が古い可能性があります。

Notionのidを使ってテーブルのkeyにしてみた

Notionのテーブルで一意のKeyを振りたいときに使いました。日付から作る方法が検索すると出てきますが、できるだけ短く、作成順でソートする必要はないのであれば、pageのidをもとに一意のkeyを作るといいと思いました。

Notionのテーブルの形式でFormulaを選択して

"K-" + slice(id(), 0, 8)

と入力すると、 K-369cf258 のような形式になります。

大文字にしたい場合は、

"K-" + replaceAll(replaceAll(replaceAll(replaceAll(replaceAll(replaceAll(slice(id(), 0, 8), "a", "A"), "b", "B"), "c", "C"), "d", "D"), "e", "E"), "f", "F")

notionのpageIDはUUIDv4が使われていると思われます。 一様にランダムなIDが振られていると仮定して、page IDの前半8桁をもとに一意のKeyを作ってみました。

UUIDは充分にランダムな値として、IDが衝突してしまう可能性について考慮する必要があります。 今回の例では、UUIDの前半8桁を使っているため、約42億通りがあります。

42億通りあれば、衝突は発生しない用に思えますが、 誕生日のパラドックスがあり、直感よりも許容できる要素数は少ないと思います。

1000個程度の要素しかない場合、衝突可能性は数%程度だと思います。

IDを6文字や、4文字にもできますが、案外重複が起こりやすい点にご注意ください。