Delicious Bookmark アドオンのsqliteファイル
を導入するとプロファイルフォルダにybookmarks.sqliteが作成される。このsqliteファイルに全ブックマークが保存されている。
このファイルから直に照会してURLを引っ張ってこようとしたときのメモ。
schema
- bookmarks
- 主要なブックマークデータ
- name
- url
- description
- 主要なブックマークデータ
- tags
- タグ名リスト
- name
- タグ名リスト
- bookmarks_tags
- ブックマークとタグの関係を紐付けるテーブル
- bookmark_id
- tag_id
- ブックマークとタグの関係を紐付けるテーブル
タグからURLをリストする
主にタグ検索からURLをリストすることが多いのでそれの照会方法。
まず、bookmarks,tagsテーブルには明示的なIDが存在しない。しかし、bookmarks_idにはidで紐付けていると思われる番号のみのリストがある。
http://www.sqlite.org/lang_createtable.html#rowid を見てみるとROWIDなる特殊なカラム(?)があるっぽい。bookmarks_tagsはROWID値でbookmarksとtagsを紐付けていると思われる。まぁともかく、この3つのテーブルを使って照会できそうだ。
照会にはTags: Database schemasに載っている、Toxi solutionが使えそうだ。というかそのまま使える。
"javascript","tips"のand条件で検索する場合
select b.url,b.name from bookmarks b, bookmarks_tags bt, tags t where bt.tag_id = t.rowid and (t.name in ('javascript','tips')) and b.rowid = bt.bookmark_id group by b.rowid having count (b.rowid) = 2;
ってな感じ。