前回のDBを修正した。
成果物
開発環境
- Windows XP Pro SP3 32bit
- cmd.exe
 
- SQLite3
WebService
- GitHub
- アカウント
- ユーザ名
- パスワード
 
- AccessToken
- scopes
- repo
 
 
- scopes
- API v3
 
- アカウント
理由
AccessTokenを識別するためのidが必要だったので追加した。
テーブル
AccessTokensテーブルにIdOnGitHub, Note列を追加した。
before
| 名前 | 型 | Key | unique | NotNull | 
|---|---|---|---|---|
| Id | integer | P | - | - | 
| AccountId | integer | F | - | ○ | 
| AccessToken | text | - | - | ○ | 
| Scopes | text | - | - | - | 
after
| 名前 | 型 | Key | unique | NotNull | 
|---|---|---|---|---|
| Id | integer | P | - | - | 
| AccountId | integer | F | - | ○ | 
| IdOnGitHub | integer | - | ○ | ○ | 
| Note | text | - | - | - | 
| AccessToken | text | - | - | ○ | 
| Scopes | text | - | - | - | 
IdOnGitHub
List your authorizations APIで取得できるid値に該当する。
前回はAccessTokenさえあればいいと思っていたが違った。APIを叩いたとき、Tokenが表示されない。結果、Tokenの特定にToken自身を使えない。セキュリティのためTokenの表出を避けていると思われる。代わりにidで識別する必要が生じる。
しかし、idはGitHubのparsonal access token作成ページでは確認できない。APIを叩き、note(Token Description)やscopesが一致したものを同一とみなし、そのid値を取得する必要がある。
型
integer/textどちらかで迷った。
SQLiteで使える型
SQLiteのサイトによると、使える型は以下のとおり。
| 型 | 説明 | 
|---|---|
| NULL | NULL値 | 
| INTEGER | 符号付き整数。値の大きさに応じて1,2,4,6,8Byteに格納する | 
| REAL | 8ByteのIEEE浮動小数点数値。 | 
| TEXT | 文字列。DBエンコーディング(UTF-8,UTF-16BE,UTF-16LE)次第。 | 
| BLOB | バイナリデータ(入力値そのまま) | 
8Byte
SQLiteにてinteger型こちらによるとintegerは8byteとある。
| Byte | bit | 2n | 総数 | MAX | MIN | 
|---|---|---|---|---|---|
| 1Byte | 8bit | 28 | 256 | +127 | -128 | 
| 2Byte | 16bit | 216 | 65,536 | +32767 | -32768 | 
| 4Byte | 32bit | 232 | 4,294,967,296 | +2,147,483,647 | -2147483648 | 
| 8Byte | 64bit | 264 | 18,446,744,073,709,551,616 | +9,223,372,036,854,775,807 | -9,223,372,036,854,775,808 | 
| Byte | bit | SI | 命数法 | 
|---|---|---|---|
| 1Byte | 8bit | 256 | 256 | 
| 2Byte | 16bit | 65Kilo | 6.5万 | 
| 4Byte | 32bit | 4Giga | 42億9696万 | 
| 8Byte | 64bit | 18Exa | 1844京6744兆737億 | 
8Byte(64bit)なら十分足りそうなので、integer型にする
Note
List your authorizations APIで取得できるnote値に該当する。
IdOnGitHubやScopesでの同一確認や絞込みが面倒なとき、Note値で代用する手抜き手法を使えるようにしたいため用意した。idがあれば不要なおまけ要素。
所感
APIではTokenが取得できないことは、GitHubのAccessToken一覧を取得するバッチをつくった(失敗)のときに気づいていた。忘れていた。
これを忘れていたということを、GitHubAPIツールを改良したいのときにも言っていた。
忘れるペース速すぎ。ブログを書いていると思い出すきっかけになり助かる。証拠が残り全文検索できるから自分の脳より頼れる。