Если не сложно, ответьте на несколько вопросов. Хочу понять в какую сторону «двигать» блог. :-) Опрос анонимный.
Если не сложно, ответьте на несколько вопросов. Хочу понять в какую сторону «двигать» блог. :-) Опрос анонимный.
Теперь рассмотрим другой вариант организации «деревьев» — алгоритм Materialized Path. В отличие от других методов, здесь рубрика хранит сразу весь путь в иерархии. Но основная фишка в том, что выстроить данные в таблице можно единственным примитивным sql-запросом с ORDER BY
.
Лично мне этот вариант особенно нравится за свою «идеальную свободу». С точки зрения теории всяких сложных структур это может и не так, но с практической точки зрения, он удобный и не требует сложного кода.
Я также буду показывать на предыдущей схеме данных.
Рубрики — являются неотъемлемой частью любого сайта, но вместе с тем их реализация не такая простая, как может показаться. Сложность в том, что рубрики представляют собой древовидную структуру данных, а значит перед разработчиком стоят как минимум две задачи. Первая — придумать способ задания иерархии в базе данных и вторая — дать возможность владельцу сайта управлять этой иерархией.
На практике, управление структурой рубрикам происходит через админ-панель или какую-то другую конфигурацию, где для каждой рубрики нужно указать её место в общем дереве.
Создать идеальную базу очень сложно. Всё дело в том, что база данных не может быть оторвана от реальности — базы нужны для того, чтобы решать какие-то конкретные задачи. Например у вас есть список клиентов в таблице Экселя. Если их количество приближается к сотне, то есть смысл подумать о том, чтобы перевести эти данные в базу, чтобы можно было ими удобней управлять и быстро находить нужные контакты. То есть обычно ставится задача, а уже потом под неё проектируется база.
Я не знаю где сейчас учат этим навыкам, но лично мой опыт накапливался в «боевых» условиях — когда на нашем предприятии (это было давно, пока я не ушёл во фриланс), решили автоматизировать часть процессов. Опыта по базам у меня тогда не было, но я легко ухватил суть по учебникам и быстро спроектировал и запустил первую версию программы. Она прекрасно работала, пока не стал вопрос её расширить на другие задачи.
Для работы с базой данных (любой), в PHP сейчас принято использовать PDO (PHP Data Objects). Раньше было так: в зависимости от используемой базы, нужно было использовать и её специфичные функции. Поскольку PHP поддерживает больше десятка баз, то появился и «зоопарк» функций: отдельно для MySQL, отдельно для SQLite, отдельно для dBase и т.д.
Но с точки зрения разработчика, работа с базой состоит из нескольких этапов:
То есть не важно какая база, схема работы всегда одна и та же. Таким образом и был создан PDO, который представляет собой единый интерфейс для работы с базами. Вначале рассмотрим «чистый» вариант работы с PDO, а потом как его упростить и сделать удобным с помощью библиотек Albireo Framework.
Существует ряд операций, которые имеют критическую важность. Например перевод денег с одного счёта на другой. Если это делать через SQL, то первым запросом нужно добавить деньги на новый счёт, а вторым запросом удалить деньги с первого. Но, что если между этими двумя операциями произойдет какой-то сбой? Очевидно, что это приведёт к проблеме целостности данных и некорректному отображению состояния счётов. Таким образом операция будет успешной только в том случае, если оба запроса прошли без ошибок.
Транзакция — это группа операторов, которые успешно выполнятся все вместе. Если на любой операции произошла ошибка, то транзакция считается незавершённой и дальше произойдёт откат до начального состояния.
В SQL есть несколько полезных инструкций, которые здорово облегчают жизнь программистам. Одни из них IF EXISTS и IF NOT EXISTS. Их можно применять как условие существования или отсутствия в разных командах, например в CREATE TABLE.
Когда мы будем рассматривать вопросы использования SQLite в PHP, то вы узнаете, что подключение этой базы (фактически файла) происходит всегда: если файл есть, то он законнетится, а если нет, то будет создан новый. Это удобно с точки зрения программирования, но создаёт проблему — нужно убедиться, что база новая и тогда нужно выполнить запросы по созданию таблиц.
Традиционно это делается путем отдельного запроса, по которому мы можем получить список существующих таблиц. Но намного проще сразу использовать возможности SQL.
Здесь можно заказать создание сайта (только Украина), шаблона или лендинга. Также вы можете выбрать готовые шаблоны для MaxSite CMS по небольшой цене. Также можно купить отдельные модули, компоненты для вашего сайта.