【GAS】Googleスプレッドシートをデータベースにするプログラムを作った(2)
前回、Googleスプレッドシートをデータベースのように扱えるプログラムを作りましたが、今回はそのバージョンアップ版です。
このプログラムの概要
図のように1つのスプレッドシートをデータベース化して複数のユーザーからアクセスするような仕組みです。詳細は前回の記事をご覧ください。
テーブルの内容はこんな感じです。1行目を項目行で、1列目は=row()を使って行番号を示しています。
ソースコード
GitHubにアップしていますので、そちらを参照ください。
https://github.com/satoshi71/spreadsheet-db
今回改善した点
- 1行目を項目行とし、フィルターで項目名を指定できるようにした。
- 1列目をIDとしオートナンバー型とした。固定番号ではなく途中で行削除が行われると再採番される。このため大人数で使おうとすると衝突事故が起きるかもしれない。
- 2列名を主キーとして1度データを追加したら編集できないようにした。空欄も不可。
使い方
今回のデータベースとしては郵便局サイトから全国データを仕込んでいます。テーブル名(シート名)を「KEN」としています。データベースのプログラムをライブラリとして取り込み済みです。ライブラリ名を「db」としました。ライブラリの設定方法はこちらをご覧ください。
データ参照
var buf = db.readRecords('KEN', "郵便番号=540611","住所"); //あいまい検索&降順の場合 var buf = db.readRecords('KEN', "郵便番号 LIKE '540611%'","住所 DESC"); //bufにヒットしたデータが配列で格納される
データ更新
//更新するデータは連想配列に var data = {'県名':'愛知県','市区名':'名古屋市緑区', '住所':'桶狭間'}; var b = updateRecord('KEN', data, "郵便番号=4580925"); //b=trueで成功
新規登録
var data = {"郵便番号":"4580925", "けんめい":"アイチケン", "しちょうそん":"ナゴヤシミドリク", "じゅうしょ":"オケハザマ", "県名":"愛知県", "市区名":"名古屋市緑区", "住所":"桶狭間"} var b = db.insertRecord("KEN", data); //b=trueで成功
削除
b = db.deleteRecords("KEN", "郵便番号=4580925"); //b=trueで成功
スポンサーリンク