Создаем базу данных и первую таблицу для сайта

Продолжаем развивать наш сайт — теперь добавим к нему базу данных, чтобы хранить статьи, пользователей и другие данные. На фото — интерфейс phpMyAdmin, где мы как раз создаём базу для проекта.

Вот что происходит на скриншоте и как это соотносится с реальной задачей:

  • Сервер: localhost. Это значит, что база данных крутится на вашем компьютере — идеально для разработки и тестов. Никаких внешних серверов и сложной настройки пока не нужно.
  • Поле «Создать базу данных». В него мы вводим имя — в нашем случае website. Это название будет использоваться в коде сайта (в настройках подключения к БД), поэтому лучше сразу выбрать простое и понятное имя без пробелов и спецсимволов.
  • Кодировка utf8mb4_0900_ai_ci. Это современный стандарт для MySQL. Он поддерживает все языки (включая русский) и эмодзи, а ai_ci означает, что поиск будет регистронезависимым и с учётом правил сортировки языка. Для нового проекта это лучший выбор.
  • Кнопка «Создать». После её нажатия база появится в списке слева, и можно будет переходить к созданию таблиц.

Создаём первую таблицу для статей

Как только база website создана, нужно добавить в неё таблицу, где будут храниться статьи блога. В phpMyAdmin это делается через вкладку «SQL» — туда можно вставить готовый запрос.

CREATE TABLE pages (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    slug VARCHAR(255) NOT NULL UNIQUE,
    title VARCHAR(255) NOT NULL,
    content TEXT NOT NULL,
    meta_description VARCHAR(255) DEFAULT NULL,
    meta_keywords VARCHAR(255) DEFAULT NULL,
    is_published TINYINT(1) NOT NULL DEFAULT 1,
    sort_order INT NOT NULL DEFAULT 0,
    created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

Что значит каждое поле (разметка и «длина»)

Поле Тип Длина / ограничения Смысл (как использовать в коде)
id INT UNSIGNED Уникальный ID страницы. В PHP будет $row['id'].
slug VARCHAR(255) до 255 символов, UNIQUE URL‑идентификатор, например about, catalog-shoes. Используется в адресной строке и для поиска страницы.
title VARCHAR(255) до 255 символов Заголовок страницы (тег <title> и <h1>).
content TEXT до ~65 тыс. символов (и больше в зависимости от движка) Основной HTML‑контент страницы. Сюда можно класть готовую разметку.
meta_description VARCHAR(255) до 255 символов Мета‑описание (тег <meta name="description">).
meta_keywords VARCHAR(255) до 255 символов Ключевые слова (сейчас почти не используются, но удобно хранить).
is_published TINYINT(1) 0 или 1 Флаг публикации: 1 — страница видна, 0 — черновик.
sort_order INT целое число Порядок сортировки в меню/каталоге (чем меньше число, тем выше в списке).
created_at DATETIME Дата создания страницы.
updated_at DATETIME Дата последнего обновления (автоматически обновляется базой).

Вот что получилось:

Добавить комментарий