Для того чтобы научиться программировать нужно пробовать программировать самые простые, но функциональные вещи. Чтобы лучше понять как сделать «свой первый самый лучший в мире» сайт — рассмотрим пример элементарного сайта из одного уровня объектов — страниц. Нам нужно
- создать базу данных с таблицей страниц
- создать страницы редактирования страниц)))
- создать отображение страниц из базы на сайте
Готовый код, по которому будет идти рассказ что где и почему. Пример простейшего сайта с админкой в связке PHP + AngularJS
Создание базы
Будем считать, что у Вас уже установлена вся связка (апач + пхп + мускул), а также что Вы уже немного умеете работать с администрированием базы (хоть через ПхпМайАдмин, хоть через консоль — не суть важно).
Красиво на каждый отдельный тип объекта в системе заводить отдельную таблицу. Так Вы сохраняете однозначность данных. Таблицу лучше называть так же как и в дальнейшем мы будем называть модели и контроллеры, и если у нас объекты — ящики, то все с ними связанное — это ящик и ящики. Коробки, боксы, контейнеры и другие синонимы мы оставим лингвистам. Однозначность! Единость! Сходимость!.. ой, это из другой оперы, но Вы я думаю поняли
init.sql
id — универсальный ключ (поле автоинкремент означает что каждая новая запись получит новый растущий вверх номер, так что мы точно можем быть уверены в ее единственности по номеру — это также позволяет ее использовать как первичный ключ. именно поля такого рода позволяют говорить — я хочу отредактировать запись 1, удалить запись 2, а база не удаляет 1 вместе с 2)
title, url… — все милые и приятные нам поля для формы, не заставляйте редактора придумывать супер форматирование — дайте ему больше удобных ячеек — сюда вставь название, сюда вступление, а это для цитаты, так проще и удобнее для большинства, а меньшинство — это теперь Вы и я
crtime, chtime — любимые лично мною поля смены, первое для времени создания записи, второе для времени любого последнего изменения, чаще так проще найти последние лаги редактора или просто дать ему самое нужное в данный момент.
status — из более чем Хлетнего опыта — никогда не удаляйте записи строгим удалением (DELETE FROM). НИКОГДА! именно та запись, которую случайно убъет редактор, окажется незабекапленной ежедневным скриптом и пропадет навеки под плач других редакторов. Удалять вообще пагубная привычка что либо кроме логов. И даже логи) Если есть возможность красиво спроектировать базу изначально — внесите код «статус_удален» и проставляйте его записям. При накоплении существенного количества удаленных таким образом записей Вы их можете перенести в архивную таблицу / партицировать данные. Про это можно долго — главное просто представить один раз, что пользоваться админкой будет пьяный голландский матрос с желанием крушить и убивать. А Вам потом расхлебывать. Статус нам достаточно короткий иметь, отсюда маленькая длина.
Пока не будем проставлять индексы, для наглядности интереснее в начале набить базу 10000 значениями, поэтому идем ко второй части — создание админки. Также стоит прочитать все записи с тегом ангуляр и оставлять вопросы/комментарии, это позволяет мне узнавать о чем еще стоит написать.
Отличная статья!