やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

SQLite3でGoogleアカウント管理DBを作成した

Google OAuth2.0関係のキーを一元管理すべくDBを作成した。

成果物

GitHubGoogle.OAuth.Database

開発環境

  • Windows XP Pro SP3 32bit
  • コンソール(cmd.exe)
  • SQLite3.14.2 2016-09-12 18:50:49

テーブル

テーブル名 保存データ
Account メアドとパスワード
Projects APIKey, ClientIdの親
ApiKeys APIKey
ClientIds ClientId, ClientSecret
RefreshTokens RefreshToken

全テーブルにはプライマリキー(P)を付与する。

テーブルの親子関係

  • Accounts
    • Projects
      • ApiKeys
      • ClientIds
        • RefreshTokens

テーブルの外部キー(F)設定によりこの関係を構築する。結果、データの作成は親から先にする必要がある。

Accounts

カラム名 key
Id P
MailAddress -
Password -

Projects

カラム名 key
Id P
AccountId F
GoogleProjectId -
Name -

ApiKeys

カラム名 key
Id P
ProjectId F
ApiKey -

ClientIds

カラム名 key
Id P
ProjectId F
ClientId -
ClientSecret -

RefreshTokens

カラム名 key
Id P
ClientId F
RefreshToken -

所感

SQLite3の不満点。

  • .sqlファイルでなく標準入力からコマンドを渡したいのにできない
  • TSVにヘッダをつけるとデータとして読んでしまう

方法はあるのかもしれないが、見つけられなかった。