14

ブックマークに簡単にタグを付け直すことができるFirefox3アドオンを作成しようとしています。たとえば、「development」というタグの付いたブックマークと「Development」というタグの付いたブックマークがあり、すべての「delelopment」タグを「Development」に簡単に更新する方法が必要です。残念ながら、これを行うためのアドオンが見つからないため、自分で作成することを考えました。

基本を理解し、FireFoxがすべてのブックマークをPlaces.sqliteというSQLiteデータベースに保存していることを発見する前にアドオンを開発していませんでした。そのデータベース内には、ブックマークディレクトリ内のすべてのブックマーク、タグ、およびフォルダを含むmoz_bookmarksというテーブルがあります。ブックマークフォルダとその子ブックマークの構造は、同じテーブル内の親フォルダのIDを指す外部キーIDを使用して表されます。このIDは、ブックマークのルートに到達するまで、その親フォルダのIDまで上向きに繰り返されます。

しかし、私が行き詰まっているのは、Firefoxで適用するタグがブックマークにどのように関連しているかです。各タグのタイプは2、親IDは4です。ただし、これとタグを使用する実際のブックマークとの間に相関関係は見られません。Firefoxのブックマークを特定のフォルダーに追加せずに、2つまたは3つのタグを付けると、その親フォルダーIDは「未提出」に対応する5になりますが、それに関連付けられたタグとの相関関係はわかりません。

構造上でこのWikiページを見つけましたが、実際には役に立ちません。

それは私を狂わせています:(助けてください...

4

5 に答える 5

28

すでにご存知かもしれませんが、タグは次のように適用されます。

データベース内のすべての URL の中心的な場所は ですmoz_places。テーブルmoz_bookmarksは、外部キー列によってそれを参照しますfk

ブックマークにタグを付けると、 に複数のエントリがありmoz_bookmarks、すべて同じ参照fkがあります: 最初はブックマーク自体です (title列にタイトルがあります)。各タグにはmoz_bookmarks、同じ外部キーを持ち、fk参照する追加のエントリがあります。カウント内のタグparent(タグの行を指しmoz_bookmarksます)。

「プログラミング」と「情報」のタグが付いた「Stackoverflow」というタイトルのブックマーク「http://stackoverflow.com 」がある場合、次のようになります。

moz_places
----------
id    url   (some more)
3636  http://stackoverflow.com

moz_bookmarks
-------------
id    type    fk     parent    title          (other columns omitted...)
332   1       3636   5         Stackoverflow  (parent=5 -> unfiled folder)
333   2       (NULL) 4         programming    (programming tag, parent=4 -> tags folder)
334   1       3636   333       (NULL)         (link to 'programming' tag)
335   2       (NULL) 4         info           (info tag, parent=4 see above)
336   1       3636   335       (NULL)         (link to 'info' tag)

お役に立てれば...

于 2009-04-11T14:30:45.787 に答える
5

MartinStettner が提案したように、タグ構造はタグ ID の外部キーに基づいているため、最初にターゲット タグの moz_bookmark.id を決定する必要があります。

この Mozilla PDFでは、sqllite での関係について説明しています ...

タグにより、moz_bookmarks に 2 つの新しいエントリが作成されます。1 つ目はタグで、parent=4 (タグ)、fk=NULL です。2 番目のエントリは最初のエントリに続き、前のタグを親として持ち、fk は moz_places の適切なエントリを指します。

それをガイドとして使用して...タグのIDがわかったら、moz_places.id ON moz_bookmarks.fkに参加できます...

    SELECT moz_places.id, moz_places.url, moz_places.title, moz_bookmarks.parent    
    FROM moz_places    
    LEFT OUTER JOIN moz_bookmarks    
    ON moz_places.id = moz_bookmarks.fk    
    WHERE moz_bookmarks.parent = N

書き出す ...

于 2012-12-20T09:48:53.047 に答える
3

ハウツーについてはまったくお手伝いできませんが、拡張機能「SQLite Manager」は、少なくとも何をすべきかを理解しようとしている部分については役立つでしょう。プラグインは一般的なマネージャーですが、Firefox が標準オプションとして使用するデフォルトのデータベースも含まれています。

その拡張機能を使用すると、好きなキーワードの名前を変更するのは比較的簡単です。それを修正する方法を探しているだけの場合は、これでうまくいく可能性があります。独自のツールを作成したい場合は、おそらくこれが少なくともクエリに役立つ可能性があります;)。

于 2009-01-24T00:39:51.830 に答える
2

私もあまり役に立ちません-同じ種類の回答を探しているあなたの質問を見つけました...

私が見つけたのは、関連する Mozilla ドキュメントです。ブックマーク システムは Places と呼ばれ、データベース テーブルはhttps://developer.mozilla.org/en-US/docs/The_Places_databaseで説明されています。

于 2009-11-27T01:12:08.757 に答える