見出し画像

Googleシート無意味なはずの8桁乱数がデータを守る!日付だけでは足りない理由

【概要】データに日付を記録することは、仕事で当たり前のように行っていることかもしれません。でも、ふと考えたことはありませんか?「本当にそれだけでデータを守れるのだろうか?」この問いが浮かんだのは、昨日の夜に参加したYouTubeチャンネル「読み書きパソコン」のライブ配信でした。その配信の中で、データ管理における識別の重要性が改めて強調され、何故“日付だけでは不十分なのか”を深く考えるきっかけとなったのです。#ブログ


こんにちは、ヒロです。

数あるブログの中から、僕のブログにお越しいただきありがとうございます。短時間で読める記事を心がけていますので、ぜひ最後までお付き合いください。

このブログでは、デジタルトランスフォーメーション(DX)を促進するための自動化ツールの情報をお届けし、その結果生まれた時間を大切な人との時間や趣味、スキルアップに使っていただければと考えています。

では、本題に入ります。


昨日の「読み書きパソコン」YouTubeはこちらです。データベース、AppSheetに興味がある人は是非チャネル登録を!先日のGoogleクラウドネクスト2024で登壇したあのきゅうりさんです。

データベースを扱う際、識別用の情報を持たないと、たとえ日付があっても、どのデータがどれか分からなくなる可能性があります。例えば、同姓同名のデータがあれば、混乱を引き起こすことは容易に想像できますよね。ここで役立つのが「主キー」と呼ばれる一意の識別子。例えばECサイトで付与される注文IDもこれに当たります。

主キーは、特定の意味を持たない自動生成された番号であるべきです。だからこそ、僕もGoogleシートで日付に加えて8桁の乱数を使ってデータを一意に識別しています。この乱数を自動生成する方法について、僕が試した3つの方法を紹介します。

  1. AppSheet内での自動生成

  2. GoogleフォームからGoogleシートに回答があった際のGASによる生成

  3. Zapier内でのJavaScript実行による生成

この3つ目の方法は、昨日のYouTubeライブ配信で新たに学んだアイデアから試しました。ライブで言及されていた「GASをできるだけ使わずにデータモデリングを進める」という考え方に共感し、Zapier内でJavaScriptを活用する形に挑戦したのです。

以下の記事で紹介しているnote投稿記事のリスト一覧をGoogleシートに作っているのですが、

主キーはこれです。B列に記事を投稿した日時のデータもあるのですが、データベースを常に同じ構成で作りたいので必ず8桁の乱数を認識用の主キーにしています。

GASのコードはこちらです:

//8桁の乱数を生成し16進数に変換し返す関数
function generateHexRandom() {
var hexChars = '0123456789ABCDEF';
var hexRandom = '';

for (var i = 0; i < 8; i++) {
hexRandom += hexChars.charAt(Math.floor(Math.random() * hexChars.length));
}
//console(hexRandom)
return hexRandom;
}

Zapierでも以下のように乱数生成を実装しました:

const randomNumber = Math.floor(Math.random() * 4294967296);
const hexString = randomNumber.toString(16).toUpperCase().padStart(8, '0');
return { hexString };

ZapierではCode By Zapierのアクションの中で、以下の設定をします。
ではData inに上のスクリプト、Data outのHex Stringというのが自動生成された乱数になります。

それぞれの方法にメリットがあり、状況に応じて使い分けることが可能です。特に、複数のツールを連携させる場合、識別子の自動生成は非常に重要です。

まとめ
主キーはただの識別子であって、意味を持たせるべきではありません。これがデータ管理の基本であり、どんな規模のデータであってもプロフェッショナルに扱うべきだと思います。もし、データベースをより効率的に管理したいのであれば、ぜひこの記事で紹介した方法を試してみてください。

参考になれば幸いです。では、次回をお楽しみに!
P.S.
ご存知の方もいらっしゃると思います。リクルート出身という民間の会社から学校の校長先生になった初の藤原和博氏の後援会を聴いて、社会では正解の無い課題だらけであることを実感しています。
YouTubeのリンクです。是非聴いてみてください。
藤原和博が語る、人生を主人公として生きるための新時代の思考法

#業務改善 #AppSheet #手を抜くために手を抜かない #Googleシート #個人事業主をサポートする仕組み作り #自動化構築でクオリティライフ #GAS #サブモニターは必須 #ライブ配信 #RPA

いただいたサポートは活動費に充てさせていただきます。 少しでも皆さまのお役に立てるよう精進していきます。