Разработка CRUD-приложения, часть 1 - база данных

 

Я решил рассмотреть пример разработки CRUD-приложения (Create, read, update and delete) при помощи CodeIgniter на примере каталога сайтов.

Общая концепция задачи: разработать каталог сайтов с группировкой сайтов по категориям, возможностью добавления, изменения и удаления сайтов и категорий, и просмотра каталога. В качестве СУБД используется MySQL.

Начнем с начала

Для начала проведем проектирование базы данных для хранения информации об объектах нашего приложения и настроим CodeIgniter для работы с этой базой даных.

Создание базы данных, привилегии доступа пользователя

Создаем базу данных, назовем ее scatalog. Для этого подключившись к серверу БД как администратор выполняем следующую команду:

  1. CREATE DATABASE `scatalog` /*!40100 DEFAULT CHARACTER SET utf8 */

Привилегии пользователя

Создадим пользователя scatalog с паролем '123' и возможностью доступа с локальной машины :

  1. CREATE USER 'scatalog2'@'localhost' IDENTIFIED BY '123';

Примечание: для реальных задач использование простого пароля не рекомендуется, кроме того возможна ситуация, когда сервер MySQL расположен на другой машине.

Дадим пользователю scatalog все привилегии для БД scatalog:

  1. GRANT ALL PRIVILEGES ON `scatalog` . * TO 'scatalog2'@'localhost';

Настройка CodeIgniter для доступа к БД

Для начала пропишем в файле application/config/database.php настройки для доступа к БД:

  1. $db['default']['hostname'] = "localhost";
  2. $db['default']['username'] = "scatalog";
  3. $db['default']['password'] = "123";
  4. $db['default']['database'] = "scatalog";
  5. $db['default']['dbdriver'] = "mysql";

Чтобы упростить себе работу, настроим CodeIgniter для автоматического создания подключения к БД. Для этого в файле application/config/autoload.php внесем следующие изменения:

  1. $autoload['libraries'] = array('database');

Создание таблиц в БД

Пусть сайт в каталоге описывается его названием, описанием и адресом (URL). Для хранения в БД информации о сайте создадим таблицу sites:

  1. CREATE TABLE `sites` (
  2. `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `name` varchar(250) NOT NULL,
  4. `description` varchar(250) NOT NULL,
  5. `url` varchar(250) NOT NULL,
  6. PRIMARY KEY (`id`)
  7. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Для категории будем хранить в БД название и описание в таблице categories:

  1. CREATE TABLE `categories` (
  2. `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `name` varchar(250) NOT NULL,
  4. `description` varchar(250) NOT NULL,
  5. PRIMARY KEY (`id`)
  6. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Пусть в нашем каталоге сайт может быть включен в несколько категорий, создадим таблицу sites_to_categories для хранения информации об этой связи между объектами:

  1. CREATE TABLE `sites_to_categories` (
  2. `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `site_id` int(10) UNSIGNED NOT NULL,
  4. `category_id` int(10) UNSIGNED NOT NULL,
  5. PRIMARY KEY (`id`),
  6. UNIQUE KEY `site_id` (`site_id`,`category_id`)
  7. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

В следующий раз рассмотрим создание классов модели и настройку CodeIgniter для работы без указания index.php в URL.

как в crud

как в crud получить индекс таблицы - то есть все id ???

CREATE USER

CREATE USER 'scatalog2'@'localhost' IDENTIFIED BY '123';

Здравствуйте.
А в какой программе данное вводить?
Это язык запросов MySQL?

много

много информации по SQL.

Это sql-команда

Это sql-команда для создания пользователя с именем 'scatalog2', который сможет подключатся к серверу БД с локальной машины используя пароль '123'.
Вводить это либо в утилите доступа к mysql (так и называется, mysql), либо в другой программе которая служит интерфейсом для доступа к MySQL.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Отправить комментарий

  • Allowed HTML tags: <em> <b> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <p> <h2> <h3> <h4> <table> <tr> <td> <th>
  • Строки и параграфы переносятся автоматически.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. Beside the tag style "<foo>" it is also possible to use "[foo]". PHP source code can also be enclosed in <?php ... ?> or <% ... %>.

Подробнее о форматировании

CAPTCHA
Этот вопрос предназначен для того, чтобы отсеять ботов

Вход в систему

Последние комментарии