Комментарии

Таблицы базы данных
( 0 Голосов )

В предыдущих статьях сайта, был рассмотрен процесс формирования запроса к одной из новых таблиц базы данных. А теперь выясним, где же эти таблицы создаются. Для автоматического формирования таблиц при установке рассматриваемого здесь компонента создается файл sql/install.mysql.utf8.sql. Ниже приведено содержимое этого файла.

CREATE TABLE IF NOT EXISTS *#joompro_subscriptions (
 id int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Automatic incrementing key field',
catid int(ll) NOT NULL DEFAULT '0' COMMENT 'Foreign key to #categories=table',
title varchar(250) NOT NULL DEFAULT COMMENT 'Title of Subscription',
alias varchar(255) NOT NULL DEFAULT COMMENT 'Alias value, used for SEF URLs',
description text NOT NULL COMMENT 'Description (will be edited using editor) ',
group_id int(ll) NOT NULL DEFAULT '0' COMMENT 'Foreign key to #usergroups table',
duration int(ll) NOT NULL DEFAULT '0' COMMENT 'Number for days that subscription lasts',
published tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Published state (1=published, 0=unpublished, - 2=trashed) ',
checked_out int(11) NOT NULL DEFAULT '0',
checked out time datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
access int(11) NOT NULL DEFAULT '1' COMMENT 'Used to control access to subscriptions',
params text NOT NULL COMMENT 'For possible future use to add item-level parameters (JSON string format)',
language char (7) NOT NULL DEFAULT COMMENT 'For possible future use to add language switching',
created datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
created_by int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Foreign key to #users table for user who created this item',
created_by_alias varchar(255) NOT NULL DEFAULT, Modified datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
modified_by int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Foreign key to #users table for user who modified this item',
publish_up datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'Date to start publishing this item',
publish_down datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'Date to stop publishing this item',
PRIMARY KEY С id),
KEY "idx_access" ("access"),
KEY " idx_checkout" ("checked_out"),
KEY "idx_published" ("published"),
KEY "idx_catid" ("catid"),
KEY " idx_createdby" ("created_by"),
KEY "idx_language" ("language")
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
CREATE TABLE IF NOT EXISTS "#joompro_sub_mapping" (
subscription_id int(11) NOT NULL DEFAULT '0' COMMENT 'Foreign Key to #_joompro_subscriptions.id',
user_id int(ll) NOT NULL DEFAULT '0' COMMENT 'Foreign Key to #users.id',
start_date datetime NOT NULL DEFAULT '0000-00-00 00:00:00', "end_date" datetime NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY ("subscription_id", "user_id")
) ENGINE-MylSAM DEFAULT CHARSET=utf8;

В этом файле создаются две новые таблицы базы данных. Обращение к нему будет организовано в XML-файле компоновки как к установочному файлу, автоматически выполняемому при установке данного компонента. В отношении этого файла необходимо отметить следующее.

Это не исходный файл РНР. Он содержит сценарий базы данных SQL, т.е. набранную простым текстом последовательность команд языка SQL.

Он специально предназначается для конкретной базы данных — MySQL. Для поддержки установки других баз данных будут предоставлены отдельные установочные файлы, аналогичные данному.

Для обращения к таблицам в нем используется префикс #. Поэтому он специально предназначен для выполнения в среде Joomla, где объект типа JDatabase преобразует этот префикс в подходящий для каждого веб-сайта на Joomla. (В целях проверки можете выполнить сценарий из этого файла относительно тестовой базы данных, используя такую программу управления базой данных, как, например, phpMyAdmin. Для этого достаточно загрузить данный файл в текстовый редактор и выполнить операцию поиска и замены префикса # соответствующим префиксом таблиц базы данных для вашего веб-сайта на Joomla.)

Более подробно вопросы создания таблиц базы данных будут рассматриваться далее в статьях сайта. А до тех пор вы можете создать одну из таких таблиц, установив рассматриваемый здесь компонент из загруженного архивного файла или выполнив приведенный выше сценарий базы данных SQL из программы phpMyAdmin, но предварительно заменив префикс в установочном файле, как пояснялось выше.

Если пользователь удаляет данный компонент, то сохранять таблицы в базе данных нецелесообразно. Поэтому для этой цели предоставляется отдельный файл sql/ uninstall .mysql.utf8.sql, содержащий следующие строки кода:

TABLE  IF EXISTS '#joompro_subscriptions';
DROP TABLE  IF EXISTS '#joompro_sub_mapping';

В этих строках кода из базы данных удаляются две таблицы. Более подробно они рассматриваются в прошлых статьях нашего сайта.


Понравился материал? Пригодилась информация? Плюсани в социалки!


 
Похожие новости