База данных сайта
Чтобы хранить данные, нужно организовать данные сайта. И разместить каким-то образом в созданной для Вашего сайта базе.
Система управления БД MariaDB работает так: указываем имя таблицы, имя столбца и имя строки. Тем самым определяем единственное значение, хранимое в указанной ячейке таблицы.
Википедия предлагает различные виды классификации баз данных. Честно говоря, нам эти проблемы ни к чему. Но для полноты картины отмечу: по модели они делятся на:
Иерархическая
Объектная и объектно - ориентированная
Объектно - реляционная
Реляционная
Сетевая
Функциональная.
Ознакомляясь с определениями и понятиями, можем выудить кое-что полезное для себя и применить при организации контента.
Итак, нужно создать таблицы базы данных. Я не хочу пугать Вас математическими терминами, попробую попроще. Создать таблицу, содержащую простые статьи, несложно. Представим себе, как она будет выглядеть. Назовем ее, например, list.
Чем характерна статья? У нее есть заголовок и содержание. Больше ничего. Вот их-то, заголовок и содержание, и нужно сохранить в СУБД, а затем вызвать оттуда. Характеристика статьи, которая определяет остальные ее составляющие — порядковый номер. Сохраняются данные или прямым вводом их в таблицы БД, или с помощью кода php. В обоих случаях задача несложная. А вот как вызывать их?
Первым столбцом любой таблицы будет порядковый номер строки. Пусть его имя - id.
Вторым должен быть заголовок. Следовательно, добавим столбец Name, куда будем складывать заголовки статей.
Третьим - содержание. Добавим столбец Text, он будет отвечать за содержание.
Если все материалы — читай «статьи», разбиты на разделы, понадобится увязать заголовок статьи с тем разделом, куда ее относем. Для этого придется в таблице list создать столбец с указанием раздела, к которому привязана статья. В результате получаем 4 столбца с именами id, Name, Text, Razdel. В столбец Razdel будем вписывать имена разделов, соответствующей статьи.
Продемонстрирую для начала то, как не нужно организовывать таблицу. Например, пишем и сохраняем в таблице list несколько статей по теме «Мой миленок, как теленок»:
1 статья Заголовок «Только веники жевать»;
2 статья Заголовок «Проводил меня до дому»;
3 статья Заголовок «Не сумел поцеловать»;
Сохраняем их в таблице list следующим образом:
Таблица list. Как не надо.
id - имя первого столбца | Name - имя второго столбца | Text - имя третьего столбца | Razdel - имя четвертого столбца |
---|---|---|---|
1 | Только веники жевать | Здесь содержание статьи | Мой миленок, как теленок |
2 | Проводил меня до дому | Здесь содержание статьи | Мой миленок, как теленок |
3 | Не сумел поцеловать | Здесь содержание статьи | Мой миленок, как теленок |
Выборка выполняется следующим образом:
1. Выбираем имена разделов.
2. Выбираем все id статей, соответствующие имени раздела. Понятно, имя раздела должно быть известно. Создаем список меню.
3. Нажав на ссылку, переходим к странице с id, заданным ссылкой.
4. По id выбираем содержание статьи.
Все данные сохраняются в одной таблице. В принципе, можно выделить столбец и поместить в него имя раздела.
Почему так не надо?
Казалось бы, чего проще — указывай имя раздела и выбирай все статьи с этим именем.
Допустим, по некоей причине нужно переименовать группу статей. А если в искомом разделе уже создана сотня строк? Представляете, как нужно действовать? Думаю — да. Листаем страницу за страницей и методически переименовываем. Сложно, муторно! Скучно, наконец! Что же делать? Как обойти этот айсберг?
Проще всего привязать имя раздела к цифре или числу. Создаем таблицу, где каждый раздел получит свой уникальный номер. Назовем ее, например, razdely. Помещая в столбец вместо имени - номер, сводим переименование раздела к одному действию. Потому что номер у него останется тем же, как его не называй.
Таблица list
id | Name | Text | Razdel |
---|---|---|---|
1 | Только веники жевать | Здесь содержание статьи | 1 |
2 | Проводил меня до дому | Здесь содержание статьи | 1 |
3 | Не сумел поцеловать | Здесь содержание статьи | 1 |
Таблица razdely
id - имя первого столбца | Name — имя второго столбца |
---|---|
1 | Мой миленок, как теленок |
2 | раздел 2 |
Таблица Так лучше
У нас две таблицы в базе. Может быть нужны еще какие-то? Это зависит от Вас. Смотря, что нужно. Можем добавить к таблице статей столбец глав. В этом случае нам потребуется решить, как вызывать статью определенной главы. То, что имя главы будет определяться ее номером, очевидно. А как связать разделы с главами, статьи с разделами? Как теперь выглядит меню? И сможем ли мы за пару кликов добраться до страницы?
Понятно, таблица глав должна быть связана с таблицей разделов. Проще всего в таблице глав создать столбец с указанием номера раздела. То есть, любая глава будет принадлежать конкретному разделу.
Остается решить — будет ли разбивка выполняться в рамках одной таблицы или проще, а значит лучше, разбить контент по таблицам. Здесь — воля Ваша.
Попробуем спроектировать базу с разбивкой на разделы и главы.
Сразу всплывает необходимость разбивки всего материала, кроме, может быть, Главной страницы, на разделы и главы.
Структура БД будет содержать три таблицы:
Таблица list
id | Name | Text | Razdel | Glava |
---|---|---|---|---|
1 | Первая статья | Здесь содержание статьи | 1 | 1 |
2 | Вторая статья | Здесь содержание статьи | 1 | 2 |
3 | Третья статья | Здесь содержание статьи | 2 | 3 |
Таблица razdely
id | Name |
---|---|
1 | раздел 1 |
2 | раздел 2 |
Таблица Glava
id | Name | Razdel |
---|---|---|
1 | глава 1 | 1 |
2 | глава 2 | 1 |
3 | глава 3 | 2 |
4 | глава 4 | 1 |
5 | глава 5 | 2 |
Итак, предварительно организовывать базу данных сайта нужно для того, чтобы представить себе общую картину как можно полнее. Структура БД более или менее определяет структуру меню, ссылки, вид страницы, порядок создания кода. Теперь войдем в СУБД и начнем создание базы данных в СУБД MariaDB. Но сначала корректируем первоначальную схему навигации, мы же изменили структуру БД.
Родионова Галина2018-03-02