前回の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ツールを改良したいのときにも言っていた。
忘れるペース速すぎ。ブログを書いていると思い出すきっかけになり助かる。証拠が残り全文検索できるから自分の脳より頼れる。