سؤال

وأنا أحاول أن أكتب فايرفوكس 3 الإضافة التي سوف تمكنني من بسهولة إعادة العلامة الإشارات. على سبيل المثال لدي بعض العناوين الموسومة "التنمية" وبعض الموسومة "التنمية" وأود طريقة لتحديث بسهولة العلامات جميع "delelopment" إلى "التنمية". للأسف لا أستطيع أن أجد وظيفة إضافية على القيام بذلك حتى ظننت أنني من شأنه أن يخلق بلدي.

وبعد أن لم تتطور وظيفة إضافية في قبل لقد تمكنت من فهم أساسيات واكتشفت أن مخازن فايرفوكس كل الإشارات المرجعية في قاعدة بيانات SQLite دعا Places.sqlite. ضمن قاعدة البيانات هناك جدول يسمى moz_bookmarks الذي يحتوي على كافة العناوين، والعلامات والمجلدات ضمن الدليل الإشارات. ويمثل هيكل المرجعية المجلدات والإشارات أطفالهم باستخدام معرف المفتاح الخارجي الامر الذي يشير الى هوية المجلد الأصل في نفس الطاولة التي recursses مرة أخرى صعودا إلى رقم هذا المجلد الأم حتى يضرب جذور الإشارات.

ولكن، حيث أصبح عالقة هي الطريقة التي ترتبط العلامات التي تطبق في فايرفوكس إلى الإشارات. كل علامة ونوع = 2 والأم ID = 4. ومع ذلك أستطيع أن أرى أي علاقة بين هذا والعناوين الفعلية التي تستخدم العلامة. إذا أضيف المرجعية في فايرفوكس إلى أي مجلد معين ولكن تعطيه 2 أو 3 علامات ثم انها ID المجلد الأصل هو 5 والتي تتطابق مع "unfiled" ولكن أستطيع أن أرى أي ارتباط آخر لالعلامات المرتبطة به.

ولقد وجدت هذه الصفحة المعرفة على هيكل ولكن لم يحدث ذلك حقا مساعدة.

وانها يقود لي المكسرات :( الرجاء المساعدة ...

هل كانت مفيدة؟

المحلول

وربما كنت وجدت بالفعل من نفسك، ولكن يتم تطبيق العلامات كما يلي:

والمكان المركزي لجميع عناوين المواقع في قاعدة البيانات هو moz_places. ويشير الجدول moz_bookmarks إليها من fk عمود مفتاح أجنبي.

إذا علامة مرجعية، وهناك مداخل متعددة في moz_bookmarks، عن وجود نفس fk المرجع الأول هو المرجعية نفسها (وجود عنوان في العمود title) لكل علامة، هناك entriy إضافي في moz_bookmarks وجود نفس fk مفتاح الأجنبية وفي اشارة الى العلامة في coumn parent (الذي يشير إلى الصف moz_bookmarks للعلامة).

إذا كان لديك علامة ' 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)

ويساعد هذا الأمل ...

نصائح أخرى

وكما اقترح MartinStettner تستند الهياكل العلامة على مفتاح خارجي للعلامة معرف لذلك عليك أولا تحديد moz_bookmark.id للعلامة الهدف.

هذه PDF موزيلا يفسر العلاقة في sqllite ...

<اقتباس فقرة>   <اقتباس فقرة>     

الكلمات تؤدي إلى اثنين من مداخل جديدة في       moz_bookmarks. أول واحد هو العلامة،       مع الوالدين = 4 (العلامات)، وكيه = NULL. ال       المدخل الثاني يتبع الأول واحد وله       العلامة السابقة كما الأم، ونقاط FK       للدخول الصحيح في moz_places.

  

وباستخدام هذا كدليل ... بمجرد أن تعرف هوية للعلامة يمكنك الانضمام 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

وتصدير ...

لا يسعني تماما لك كيف ل، ومع ذلك، وربما تمديد "مدير برنامج SQLite" سوف تساعدك على الأقل في الجزء حيث كنت في محاولة لمعرفة ما يجب القيام به. البرنامج المساعد هو المدير العام، لكنه يحتوي على قواعد البيانات الافتراضية المستخدمة من قبل فايرفوكس كخيار قياسي أيضا.

<ع> استخدام هذا التمديد يجب أن تكون واضحة نسبيا لإعادة تسمية الكلمات الرئيسية التي ترغب. إذا كنت تبحث فقط عن وسيلة لإصلاحه، وهذا يمكن أن تعمل، إذا كنت لا تزال تفضل لكتابة أداة الخاصة بك، وربما هذا واحد يمكن على الأقل المساعدة في الاستعلامات..)

وأنا لا يمكن أن تساعد كثيرا سواء - وجدت سؤالك تبحث عن نفس النوع من الأجوبة ...

وماذا لقد تمكنت من العثور على وثائق موزيلا ذات الصلة. ويطلق على نظام المرجعية الأماكن، ووصف جداول قاعدة البيانات على HTTPS: // المطور .mozilla.org / EN-US / مستندات / The_Places_database .

ولأن كان لي لحفر أعمق للعثور على هذه المعلومات، وهنا هو طلب لجلب رابط والعنوان وتاريخ الإنشاء من جميع المواقع المفضلة لديك:

SELECT h.url, b.title, b.dateAdded
FROM moz_places h
JOIN moz_bookmarks b
ON h.id = b.fk;

وآمل انها تريد مساعدة الناس الذين يبحثون عن هذا الجواب.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top