База данных Eonza. Часть 2
В первой части мы описали структуру половины служебных таблиц используемых в системе Eonza. Здесь мы рассмотрим оставшиеся таблицы, которые хранят информацию о пользователях, правилах доступа и загруженных файлах.
enz_group
Таблица enz_group содержит группы пользователей, которые определены владельцем хранилища.
CREATE TABLE IF NOT EXISTS `enz_group` ( `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(32) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
name - наименование группы пользователей.
enz_users
Таблица enz_users содержит список пользователей, которых добавил владелец хранилища, чтобы дать доступ к данным.
CREATE TABLE IF NOT EXISTS `enz_users` ( `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT, `login` varchar(32) NOT NULL, `pass` binary(16) NOT NULL, `email` varchar(32) NOT NULL, `idgroup` smallint(5) unsigned NOT NULL, `name` varchar(64) NOT NULL, `lang` varchar(10) NOT NULL, `uptime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `login` (`login`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Все поля данной таблицы описаны на странице Пользователи.
enz_access
Таблица enz_access содержит все правила доступа групп пользователей к таблицам базы данных.
CREATE TABLE IF NOT EXISTS `enz_access` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `_uptime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `_owner` smallint(5) unsigned NOT NULL, `idgroup` smallint(5) unsigned NOT NULL, `idtable` int(10) unsigned NOT NULL, `mask` varchar(32) NOT NULL, `active` tinyint(3) NOT NULL, `read` tinyint(3) unsigned NOT NULL, `create` tinyint(3) unsigned NOT NULL, `edit` tinyint(3) unsigned NOT NULL, `del` tinyint(3) unsigned NOT NULL, PRIMARY KEY (`id`), KEY `_uptime` (`_uptime`), KEY `idgroup` (`idgroup`,`idtable`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Все поля данной таблицы описаны на странице Права доступа. Укажем только возможные значения для полей read, edit и del.
0 - данная группа не имеет соответствующих прав доступа.
1 - пользователь указанной группы имеет доступ только к тем записям, который он сам создал.
2 - пользователи группы имеет права доступа ко всем записям данной таблицы или таблиц.
enz_mimes
В таблицу enz_mimes записывается и хранится информация о всех типах загружаемых файлов.
CREATE TABLE IF NOT EXISTS `enz_mimes` ( `id` int(10) NOT NULL AUTO_INCREMENT, `name` varchar(64) NOT NULL, `ext` varchar(64) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
name - информация о MIME-типе данных. Например,
image/png application/vnd.ms-excel audio/mpeg
ext - зарезервировано.
enz_files
Таблица enz_files хранит список всех загруженных файлах. Если какая-то таблица имеет тип Изображения или Файлы/Документы, то информация о загруженных файлах хранится здесь.
CREATE TABLE IF NOT EXISTS `enz_files` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `_owner` smallint(5) unsigned NOT NULL, `_uptime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `idtable` smallint(5) unsigned NOT NULL, `idcol` int(10) unsigned NOT NULL, `iditem` int(10) unsigned NOT NULL, `folder` tinyint(3) unsigned NOT NULL, `filename` varchar(128) NOT NULL, `size` int(10) unsigned NOT NULL, `comment` text NOT NULL, `storage` longblob NOT NULL, `w` mediumint(8) unsigned NOT NULL, `h` mediumint(8) unsigned NOT NULL, `sort` tinyint(3) unsigned NOT NULL, `preview` blob NOT NULL, `mime` tinyint(4) NOT NULL, `ispreview` tinyint(3) unsigned NOT NULL, PRIMARY KEY (`id`), KEY `idtable` (`idtable`,`idcol`,`iditem`,`sort`), KEY `folder` (`idtable`,`folder`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
idtable - идентификатор таблицы, которой принадлежит файл.
idcol - идентификатор поля (колонки) куда загружен файл.
iditem - идентификатор записи в которую загружен файл. Эти три поля однозначно определяют принадлежность файла.
folder - если файл хранится на диске, то указывает идентификатор (имя) директории. Файлы на диске хранятся как /storage/[idtable]/[folder]/[id], где [id] - это имя файла совпадающее с идентификатором в данной таблице.
filename - оригинальное имя файла.
size - размер файла.
comment - комментарий к файлу.
storage - если файл хранится в базе данных, то он записывается в это поле.
w - содержит ширину картинки, если файл принадлежит полю типа Изображения.
h - содержит высоту картинки, если файл принадлежит полю типа Изображения.
sort - порядок файла.
preview - если файл хранится в базе данных, имеет тип Изображения и указано создание миниатюр, то миниатюра записывается в это поле. В случае, если изображения записываются на диск, то путь к миниатюре будет /storage/[idtable]/[folder]/_[id].
mime - идентификатор MIME-типа из таблицы enz_mimes.
ispreview - указывает на наличие миниатюры для изображения.