Подробное руководство по работе с базами данных в Joomla 1.5. Часть 1

Содержание материала

 

SQL запрос который создаст таблицу описанную в схеме выше:

 

CREATE TABLE '#__myextension_foobars' (

'id' INTEGER UNSIGNED NOT NULL DEFAULT NULL AUTO_INCREMENT,

'content' TEXT NOT NULL DEFAULT '',

'checked_out' INTEGER UNSIGNED NOT NULL DEFAULT 0,

'checked_out_time' DATETIME NOT NULL DEFAULT '0000-00-00

00:00:00',

'params' TEXT NOT NULL DEFAULT '',

'ordering' INTEGER UNSIGNED NOT NULL DEFAULT 0,

'hits' INTEGER UNSIGNED NOT NULL DEFAULT 0,

'published' INTEGER UNSIGNED NOT NULL DEFAULT 0,

PRIMARY KEY('id')

)

CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';

 

Поля даты

 

Очень часто используется поле типа datetime, хранящее дату и время некоторого события. Когда мы используем это поле, очень важно знать про эффект временных зон. Все даты и время должны быть сохранены в нулевом поясе UTC+0 (GMT / Z).

 

А уже при выводе на экран используем класс JDate.

 

Многоязычные требования

 

В кодировке UTF-8 количество бит на символ от 8 и более. К сожалению в MySql версиях до 4.1.2, один символ всегда занимает один байт, что вызывает некоторые проблемы. Единственное решение - это создать различные файлы sql запросов для различных версий MySql-серверов, поддерживающих и не поддерживающих кодировку UTF-8

 

Для MySql не поддерживающих данную кодировку мы должны задать увеличенный размер полей. Например, для поля varchar(20) лучше задать размер varchar(60). Размер поля увеличен в три раза, потому что большинство символов в кодировке UTF-8 занимают максимум 3 байта.

 

Но например поле varchar(100) мы должны были бы увеличить в три раза и получить varchar(300). Но это невозможно, так как максимальный размер - varchar(255). Единственный выход - это задать тип TEXT.

 

Для примера, ядро Joomla содержит таблицу #__content, хранящее поле title. Для MySql поддерживающих UTF-8 поле определяется как

 

'title' varchar(255) NOT NULL default ''

 

а для не поддерживающих

 

'title' text NOT NULL default ''
Меню

Главная

Компьютерная помощь
Ремонт компьютеров
Ремонт ноутбуков
Заправка картриджей

Сис-админу

Ноутбуки (11)
Windows (22)
*nix (1)

Веб-мастеру

HTML (7)
CSS (10)
Java Script (2)
XML (2)
DLE (2)
Joomla (17)
ModX (1)
Drupal (1)

Контакты


+7 (904) 214 82 20
подробнее