Шаг 009. Создаем таблицу результатов краулинга по страницам

sqlГлава 1. Создаем схему SEO Data Hub

Что делаем

Создаем таблицу результатов краулинга по страницам

Зачем SEO-специалисту

Здесь будут технические SEO-сигналы: статус ответа, index/noindex, входящие ссылки, размер текста и скорость.

Код. Вставьте 1 в 1

CREATE TABLE crawl_pages (
    crawl_page_id INTEGER PRIMARY KEY,
    crawl_run_id INTEGER NOT NULL,
    page_id INTEGER NOT NULL,
    status_code INTEGER NOT NULL,
    robots_status TEXT NOT NULL,
    canonical_ok INTEGER NOT NULL,
    internal_links_in INTEGER NOT NULL DEFAULT 0,
    word_count INTEGER NOT NULL DEFAULT 0,
    response_ms INTEGER NOT NULL DEFAULT 0,
    depth INTEGER NOT NULL DEFAULT 0,
    FOREIGN KEY (crawl_run_id) REFERENCES crawl_runs(crawl_run_id),
    FOREIGN KEY (page_id) REFERENCES pages(page_id)
);

Построчный разбор: что делает, для чего и как работает

Строка 1: CREATE TABLE crawl_pages ( — Создает новую таблицу и начинает описание ее колонок.
Строка 2: crawl_page_id INTEGER PRIMARY KEY, — Создает колонку crawl_page_id: уникальный числовой идентификатор строки.
Строка 3: crawl_run_id INTEGER NOT NULL, — Создает обязательную числовую колонку crawl_run_id; она нужна для счетчиков, статусов или связей.
Строка 4: page_id INTEGER NOT NULL, — Создает обязательную числовую колонку page_id; она нужна для счетчиков, статусов или связей.
Строка 5: status_code INTEGER NOT NULL, — Создает обязательную числовую колонку status_code; она нужна для счетчиков, статусов или связей.
Строка 6: robots_status TEXT NOT NULL, — Создает обязательную текстовую колонку robots_status; пустое NULL-значение запрещено.
Строка 7: canonical_ok INTEGER NOT NULL, — Создает обязательную числовую колонку canonical_ok; она нужна для счетчиков, статусов или связей.
Строка 8: internal_links_in INTEGER NOT NULL DEFAULT 0, — Создает обязательную числовую колонку internal_links_in; она нужна для счетчиков, статусов или связей.
Строка 9: word_count INTEGER NOT NULL DEFAULT 0, — Создает обязательную числовую колонку word_count; она нужна для счетчиков, статусов или связей.
Строка 10: response_ms INTEGER NOT NULL DEFAULT 0, — Создает обязательную числовую колонку response_ms; она нужна для счетчиков, статусов или связей.
Строка 11: depth INTEGER NOT NULL DEFAULT 0, — Создает обязательную числовую колонку depth; она нужна для счетчиков, статусов или связей.
Строка 12: FOREIGN KEY (crawl_run_id) REFERENCES crawl_runs(crawl_run_id), — Создает внешний ключ: эта колонка должна ссылаться на существующую строку в другой таблице.
Строка 13: FOREIGN KEY (page_id) REFERENCES pages(page_id) — Создает внешний ключ: эта колонка должна ссылаться на существующую строку в другой таблице.
Строка 14: ); — Закрывает текущую SQL-конструкцию и завершает команду точкой с запятой.

Что должно получиться

Появится таблица crawl_pages, где одна строка описывает состояние одной страницы в одном краулинге.

Если появилась ошибка

Проверьте, что вы работаете в файле seo_lab_from_zero.db, скопировали блок полностью и не потеряли точку с запятой в конце SQL-команды.