Зміст |
Підготовка Створення та вибір типу файлів Іконка Розпізнавання файлів Опис Бажані програми Супер атрибути Індексування Наповнення даними Запит до бази даних |
Семінар: Типи файлів (Filetypes), атрибути (Attributes), індекси (Index) та запити (Queries)
Цей семінар показує як використовувати Атрибути (Attributes), Запити (Queries), Індекс (Index) та встановлені Типи файлів (Filetypes). Для прикладу створимо базу даних для зберігання нашої DVD бібліотеки.
Підготовка
Спочатку визначимо які типи файлів та атрибути Ви потребуватимите при обслуговування. Спочатку я планував використовувати файл закладок з посиланням на IMDB сторінку фільму, але Haiku не мала "закладабельного" браузера, такого як у BeOS NetPositive свого часу. Я прийшов до такого, нехай файлом для обкладинки фільму буде файл зображення JPEG.
З появою WebPositive, Haiku знову має браузер який працює з закладками, так що ви могли б також використовувати файл закладок замість зображення в якості основного типу файлу для наших файлів бази даних.
У будь-якому випадку, до цих файлів ми додамо кілька атрибутів. Тут ми повинні вирішити, якщо бажаємо, запросити його пізніше (після того як додали його в індекс), то який тип атрибута повинен бути. Числа (INT, Float) можна оцінити інакше, ніж текст (</=/> проти є/містить/почати з).
Ось атрибути, які я хотів би мати для своїх DVD-дисків:
- Назва фільму
- Жанр
- URL відповідного IMdB
- Режисер/Актори
- Сюжет
- Моя оцінка від 0 до 10
- Місце на моїх поличках де я би дійсно міг знайти DVD
- Якщо його там немає, то хто позичив цей диск
Створення вибраного типу файлу
Запустіть налаштування Типи файлів (Filetypes) натискуванням кнопки нижче ієрархічного списку зліва. У маленькому діалоговому вікні що відкриється виберіть до якої групи MIME належатиме вибраний вами тип файлу. Покладіть його в "програму (application)" та встановіть "Внутрішнє ім'я" як DVDdb.

Выдкриється панель вашого нового типу файлів DVDdb (DVD Database):

Іконка (Icon)
Двічі клікніть по цьому віконцю для активації графічного редактора Icon-O-Matic у спробі створити картинку для вашого типу файлів. Ви можете перетягнути у вікно редактора якусь готову іконку призначену для іншого типу щоб зробити модифіковану версію з неї під власні потреби.
Розпізнавання файлу (File recognition)
Ви можете додати суфікси, як .txt, .jpg, .mp3, щоб розпізнати файли по їх розширенню. Це корисно при роботі з файлами у системах що не використовують MIME типи. Для нашого випадку це не підходить.
Опис (Description)
- Введіть ім'я (Type name) - З'являється, наприклад, атрибуті меню вікна Tracker та у атрибуті "Вид" файла.
- Опис (Description) - більш деталізований опис.
Бажана програма (Preferred application)
Контекстне меню де показані всі програми здатні обробляти цей конкретний тип файлів. Тут можна вибрати програму що відкриватиме визначений файл двокліком.
відкриває діалогове вікно файлу де можна вибрати програму для відкриття цього типу файлів. Тут ми встановили Переглядач зображень (ShowImage) для показу обкладинки DVD. | ||
Відкриється діалогове вікно файлу, де ви вибираєте кожен файл, який вже має кращий набір бажаних програм, що ви шукаєте. |
Додаткові атрибути (Extra attributes)
Тут ми вводимо всі вибрані атрибути, які визначили при підготовці. Натисканні кнопки
відкриває панель для введення всіх даних для нового атрибута. Ви можете змінити присутній атрибут простим двокліком мишки.
Ім'я атрибута (Attribute name) - з'являється, наприклад, як заголовок стовпця у вікні Tracker'а.
Внутрішнє ім'я (Internal name) - використовується для індексації та запиту атрибута.
- Type - Defines the value the attribute can hold and therefore how it can be queried.
- for normal text
- for binary data: 0 (false) or >=1 (true)
- : ± 255
- : ± 65,535
- : ± 4,294,967,295
- : ± 18,446,744,073,709,551,615
for integer numbers with different ranges:
- for floating-point numbers, single precision
- for floating-point numbers, double precision
- for time and date format
- Visible - This checkbox determines if the attribute is visible in a Tracker window at all. Since the Tracker will be the interface to our DVD database, we check it and define its appearance with:
- - Can be used to show either one of two symbols, see below.
- - Shows an integer as 1/60, e.g. "90" becomes "1:30".
- - Shows a rating between 0 and 10 as star symbols.
- Leave on "Default" if the values are to be displayed according to the attribute's "Type" (e.g. string/integer/float etc.). The other options are:
- - Determines if the attribute shall be editable in Tracker.
- - Defines the two symbols used for a checkbox display. For example, "xo" will show a "x" for all values >0 and "o" for 0.
- - The default width of that attributes column in a Tracker window.
- - The attribute can be displayed left, center, or right aligned.
Тепер введіть усі дані для ваших атрибутів:
Внутрішнє ім'я (Internal Name) | Тип атрибуту (Attribute type) | індексований(indexed?) | Опис (Description) |
---|---|---|---|
DVDdb:title | текст | так | Назва фільму |
DVDdb:genre | текст | так | Жанр |
DVDdb:url | текст | ні | URL адреса |
DVDdb:cast | текст | так | Режисер/Актори |
DVDdb:plot | текст | ні | Сюжет |
DVDdb:rating | int-32 | так | Оцінка від 1 до 10 |
DVDdb:coord | текст | ні | Поличка (де знаходиться) |
DVDdb:lent | текст | так | позичені |
Індексування (Indexing)
До початку введення даних до вашої невеличкої бази даних DVD, ви повинні додати атрибути для Індексу (Index). Тільки індексовані атрибути можна використовувати для прискорення Запитів (Queries)Haiku.
Отже, що ми шукатимемо в майбутньому? Ми, ймовірно, не будемо питати "Що у нас лежить в комірці B4 на моїй полиці?" або "Чи маємо ми URL IMdB або чи сюжет фільму містить слово 'pope-shenooda'?".
Залишіть ці атрибути:
Внутрішнє ім'я (Internal Name) | Тип атрибуту (Attribute type) |
---|---|
DVDdb:title | текст |
DVDdb:genre | текст |
DVDdb:cast | текст |
DVDdb:rating | int-32 |
Для їх індексування відкрийте Термінал (Terminal) і просто один за другим введіть:
mkindex -t string DVDdb:title mkindex -t string DVDdb:genre mkindex -t string DVDdb:cast mkindex -t int DVDdb:rating
Опція -t визначає тип атрибуту, який для всіх є "стрічкою" крім оцінки яка має значення ціле число.
Наповнення даними
Тепер коли все налаштовано ми можемо почати вносити дані до нашої бази.
Позаяк базовий наш файл зображення обкладинки ми мусимо перейти на онлайн ресурс, наприклад, IMdB. Подивіться на перший фільм та збережіть його обкладинку або постер до нової теки де ми бажаємо зберігати нашу DVDdb.
Відкривши цю теку ми бачимо звичайне вікно Tracker з одним файлом JPEG в ньому. Клацнемо правою кнопкою мишки та поміняємо його тип файлу на application/DVDdb за допомогою додатку Типи файлів (Filetype). Більше інформації про це у документі Типи файлів (Filetypes).
Тепер ми активуємо всі наші DVDdb атрибути з меню вікна Tracker'а
та переставимо стовпці за своїм смаком:
Клікнувши по поки що порожньому атрибуту (або натиснувши ALT E) ми увійдемо у режим редагування та зможемо заповнити кожен атрибут. Натискання TAB та SHIFT TAB дозволяє мандрувати поміж атрибутами.
У нашому прикладі ми почали з закачки JPG обкладинки та зміни її типу файлу до applications/DVDdb. Існує ще один елегантний спосіб створення файлу для такої роботи. Просто скопіюйте порожній файл вашого типу файлів до /boot/home/config/settings/Tracker/Tracker New Templates та переіменуйте його у DVDdb.
Клікнувши правою кнопкою мишки у вікні Tracker'а, ви знайдете запис
типово це "Нова тека (New folder)".
Опитування бази даних
Кілька годин марудної роботи і ви матимете прекрасну маленьку базу даних по запиту у якій можна знайти усі фільми Брюса Вілліса з оцінкою 7+... ;-)
Ви можете призначити розумний макет атрибутів для результатів запиту конкретного типу файлу.
Відкрийте папку, що містить файли DVDdb і організуйте атрибути так, як ви б хотіли, щоб результати запиту були представлені. Зкопіюйте цей макет з .
Open /boot/home/config/settings/Tracker/DefaultQueryTemplates, create a new folder and rename it to group/filetype, replacing slashes with underscores; in our case "application_DVDdb".
Відкрийте нову теку і вставте туди макет з
. Вуаля: