Початкова сторінка

Микола Жарких (Київ)

Персональний сайт

?

Таблиці

Важливих таблиць у Смереці всього дві – Вершини та Атрибути. Ще дві таблиці використовуються для кешування сторінок (див. розділ «Смерекеш»), і ще одна – для організації зовнішнього перенаправлення.

Вершини (nodes)

Таблиця складається з наступних полів:

id – 4-байтове ціле число без знаку. Є первісним ключем таблиці.

parent – 4-байтове ціле число без знаку. Є вказівником на вершину-господиню даної вершини.

seqpos – 4-байтове ціле число без знаку. Задає послідовність вершин з однаковою ієрархічною позицією (рівних вершин, sibling nodes).

class – 4-байтове ціле число без знаку. Задає клас вершини, фактично є вказівником на вершину метакласу даної вершини. Див. розділ Класи вершин.

accesslevel – 1-байтове ціле число без знаку. Задає рівень доступу для вершини. Див. розділ Права доступу.

link – 4-байтове ціле число без знаку. Посилання на іншу вершину в дереві, за умовчанням 0 – тобто немає посилання.

zone – 4-байтове ціле число без знаку. Визначає зону адміністрування, до якої належить вершина. Див. розділ Права доступу.

symbname – строка змінної довжини, до 32 символів. Містить символічне ім’я вершини для обчислення її URL.

lastupdate – дата останньої модифікації вершини.

Вершини Смереки утворюють дерево, організоване за допомогою полів parent та seqpos. Це дерево в найпростішому випадку безпосередньо відображається в дереві документів сайту. Наприклад, якщо коренева вершина сайту example.com має підпорядковану вершину Shop, а ця остання – підпорядковану вершину Mercedes, то для купівлі Мерседеса треба ввести example.com/Shop/Mercedes.html.

Атрибути (attrs)

Смерека зберігає всі атрибути в одній таблиці. Таблиця складається з наступних полів:

id – 4-байтове ціле число без знаку. Є первісним ключем таблиці.

nodeid – 4-байтове ціле число без знаку. Вказівник на вершину, до якої належить даний атрибут. Мусить містити значення якогось первісного ключа з таблиці вершин.

name – строка змінної довжини, до 32 символів. Позначає внутрішнє ім’я даного атрибуту. Смерека використовує це ім’я для ідентифікації атрибуту, але само це ім’я на веб-сторінках здебільшого не з’являється.

datatype – 1-байтове ціле число, яке визначає тип даних атрибута. Допустимі значення :

1 – ціле число (зі знаком)

2 – ціле число (без знаку)

3 – посилання на вершину

4 – строка

5 – текст (до 16 Мб)

6 – календарна дата (і час)

7 – файл (в тому числі зображення)

8 – дійсне число (з плаваючою точкою)

lang – поле на 2 символи, яке визначає мовну версію атрибута; мовно-незалежні атрибути містять тут NULL.

dwvalue – 4-байтове ціле число без знаку (double word). Спосіб використання визначається типом даних атрибута:

2 – ціле число (без знаку) – значення атрибута;

3 – посилання на вершину – вказівник на іншу вершину дерева Смереки. Отже, допустимими є значення 0 або ід якоїсь існуючої вершини. Це дозволяє контролювати цілісність посилань. Коли вершина видаляється безповоротно, всі вказівники на неї також видаляються, яким би вершинам вони не належали.

dblvalue – 8-байтове число з плаваючою точкою. Використовується для атрибутів типу «Дійсне число».

datevalue – 8-байтове поле дати. Використовується для атрибутів типу «Календарна дата».

strvalue – строка змінної довжини, до 512 символів. Спосіб використання визначається типом даних атрибута:

4 – строка – значення атрибута;

7 – файл (в тому числі зображення) – список атрибутів файлу у форматі name="value", розділених пробілами. Див. далі «Файлові атрибути».

txtvalue – текстове поле розміром до 16 мегабайт, яке є значенням атрибуту типу текст.

Файлові атрибути

Атрибут типу файл – приклад структурного атрибуту, значення якого не є просто число чи строка, а колекція примітивних типів даних. Атрибути такого типу описують зовнішні файли, в тому числі зображення. Але вони не містять самих файлових даних – вони зберігаються як окремі файли в серверній ОС. Смерека зберігає всі елементи файлового атрибуту у вигляді строки.

fname – строка, яка містить ім’я файлу. Якщо файл не підлягає кешуванню, fname містить повний шлях та ім’я файла на сервері. Якщо файл тільки кешується на сервері, а постійно зберігається в іншому місці (сховищі), то fname містить повний шлях та ім’я файла у сховищі. На сервері кешований файл міститься у певному фіксованому каталозі.

casheable – логічне поле, яке дозволяє кешування файлу. За умовчанням false, файл не кешується.