MyWackoSite: EDCWiki/СхемаБДWackoWiki

Схема базы данных Wacko Wiki

Описание таблиц My SQL для R4.0

Wacko Таблицы:

? в комментарии обозначает, что пока не до конца ясно зачем нужны определенное поле или таблица

CREATE TABLE `wackowiki_acls` ( --ACL

  `page_tag` varchar(250) binary NOT NULL default '', --тег страницы

  `supertag` varchar(250NOT NULL default '', --супертег страницы

  `privilege` varchar(20NOT NULL default '', --тип привилегии (readwrite, comment)

  `list` text NOT NULL--список тех, кому разрешено производить действие над страницей (*, список ИменаПользователей без разделителей)

  `last_change_date` datetime, --дата последнего изменения ACL (только в EDCWiki)

  `last_repl_date` datetime, --дата последней репликации (только в EDCWiki)

  PRIMARY KEY  (`page_tag`,`privilege`),

  KEY `supertag` (`supertag`)

) TYPE=MyISAM;

CREATE TABLE `wackowiki_cache` ( --кэш

  `name` varchar(32NOT NULL default '', --?

  `method` varchar(20NOT NULL default '', --?

  `query` varchar(100NOT NULL default '', --?

  KEY `name` (`name`)

) TYPE=MyISAM;

CREATE TABLE `wackowiki_links` ( --ссылки на внутренние вики страницы

  `from_tag` varchar(250) binary NOT NULL default '', --тег страницы, на которой находится ссылка

  `to_tag` varchar(250) binary NOT NULL default '', --тег страницы, на которую ссылаются

  `to_supertag` varchar(250NOT NULL default '', --супертег страницы, на которую ссылаются

   KEY `from_tag` (`from_tag`,`to_tag`),

  KEY `idx_from` (`from_tag`),

  KEY `idx_to` (`to_tag`)

) TYPE=MyISAM;

CREATE TABLE `wackowiki_pages` ( --последнии версии страниц, здесь также хранятся комментарии, 

--отличие комментариев от обычных страниц в том, 

--что у комментариев заполнены поля comment_on и super_comment_on

  `id` int(10) unsigned NOT NULL auto_increment, --id

  `tag` varchar(250) binary NOT NULL default '', --тег страницы

  `supertag` varchar(250NOT NULL default '', --супертег страницы

  `time` datetime NOT NULL default '0000-00-00 00:00:00', --время создания данной версии страницы

  `body` text NOT NULL--текст, который отображается в поле редактирования страницы

  `body_r` text NOT NULL--текст стрраницы (нужно разобраться зачем нужны 2 поля для хранения содержимого страницы)

  `body_toc` text NOT NULL--?

  `owner` varchar(50NOT NULL default '', --имя владельца страницы

  `user` varchar(50NOT NULL default '', --имя пользователя, изменившего эту страницу

  `latest` enum('Y','N') NOT NULL default 'N', --? видимо флаг того, последняя версия страницы или нет 

--(пока не совсем ясно зачем нужен этот флаг, потому что в данной 

--таблице он у всех страниц устанавливается в Y, 

--а в таблице старых версий страниц (wackowiki_revisions) в N)

  `handler` varchar(30NOT NULL default 'page', --обработчик данной страницы (видимо какой обработчик должен вызываться по 

--умолчанию, с этим разобраться поподробнее)

  `comment_on` varchar(250) binary NOT NULL default '', --тег страницы ,на которую добавлен комментарий

  `super_comment_on` varchar(250NOT NULL default '', --супертег страницы ,на которую добавлен комментарий

  `hits` int(11NOT NULL default '0', --количество просмотров данной страницы

  `lang` varchar(20NOT NULL default '', --язык страницы

  `description` varchar(250NOT NULL default '', --?описание страницы 

  `keywords` varchar(250) binary NOT NULL default '', --?ключевые слова 

  `is_repl` enum('Y','N') NOT NULL default 'N', --реплецируется ли эта страница, или нет (только в EDCWiki)

  `last_repl_date` datetime, --дата последней репликации (только в EDCWiki)

  PRIMARY KEY  (`id`),

  UNIQUE KEY `idx_tag` (`tag`),

  KEY `idx_supertag` (`supertag`),

  KEY `idx_time` (`time`),

  KEY `idx_latest` (`latest`),

  KEY `idx_comment_on` (`comment_on`),

  KEY `idx_super_comment_on` (`super_comment_on`),

  FULLTEXT KEY `body` (`body`)

) TYPE=MyISAM;

CREATE TABLE `wackowiki_pagewatches` ( --наблюдения за страницами

  `id` int(10NOT NULL auto_increment, --id

  `user` varchar(80NOT NULL default '', --имя наблюдателя

  `tag` varchar(250) binary NOT NULL default '', --тег страницы, за которой наблюдают

  `time` timestamp(14NOT NULL--?время, когда было установлено наблюдение

  PRIMARY KEY  (`id`)

) TYPE=MyISAM;

CREATE TABLE `wackowiki_referrers` ( --список внешних ссылок на страницы данной вакки

  `page_tag` char(250) binary NOT NULL default '', --тег страницы, на которую есть внешняя ссылка

  `referrer` char(150NOT NULL default '', --внешняя страница, с которой ссылаются

  `time` datetime NOT NULL default '0000-00-00 00:00:00', --время, в которое была обнаружена внешняя ссылка

  KEY `idx_page_tag` (`page_tag`),

  KEY `idx_time` (`time`)

) TYPE=MyISAM;

CREATE TABLE `wackowiki_revisions` ( --старые версии страниц (поля аналогичны полям таблицы wackowiki_pages, 

--отсутствуют поля body_toc и hits, поле body_r никогда не заполняется)

  `id` int(10) unsigned NOT NULL auto_increment, --id

  `tag` varchar(250) binary NOT NULL default '', --тег страницы

  `supertag` varchar(250) binary NOT NULL default '', --супертег страницы

  `time` datetime NOT NULL default '0000-00-00 00:00:00',

  `body` text NOT NULL,

  `body_r` text NOT NULL,

  `owner` varchar(50NOT NULL default '',

  `user` varchar(50NOT NULL default '',

  `latest` enum('Y','N') NOT NULL default 'N',

  `handler` varchar(30NOT NULL default 'page',

  `comment_on` varchar(250) binary NOT NULL default '',

  `super_comment_on` varchar(250NOT NULL default '',

  `lang` varchar(20NOT NULL default '',

  `description` varchar(250NOT NULL default '',

  `keywords` varchar(250) binary NOT NULL default '',

  PRIMARY KEY  (`id`),

  KEY `idx_tag` (`tag`),

  KEY `idx_supertag` (`supertag`),

  KEY `idx_time` (`time`),

  KEY `idx_latest` (`latest`),

  KEY `idx_comment_on` (`comment_on`)

) TYPE=MyISAM;

CREATE TABLE `wackowiki_upload` ( --?информация о загрузках

  `id` int(11NOT NULL auto_increment, --id

  `page_id` int(11NOT NULL default '0', --id страницы

  `filename` varchar(250NOT NULL default '', --имя загруженного файла

  `description` varchar(250NOT NULL default '', --?описание

  `uploaded_dt` datetime NOT NULL default '0000-00-00 00:00:00', --время загрузки файла

  `filesize` int(11NOT NULL default '0', --размер файла

  `picture_w` int(11NOT NULL default '0', --ширина картинки

  `picture_h` int(11NOT NULL default '0', --высота картинки

  `file_ext` varchar(10NOT NULL default '', --расширение файла

  `user` varchar(80NOT NULL default '0', --имя пользователя

  PRIMARY KEY  (`id`),

  KEY `page_id` (`page_id`,`filename`),

  KEY `page_id_2` (`page_id`,`uploaded_dt`),

  KEY `user_id` (`user`,`page_id`)

) TYPE=MyISAM;

CREATE TABLE `wackowiki_users` ( --пользователи

  `name` varchar(80NOT NULL default '', --имя

  `password` varchar(32NOT NULL default '', --хеш пароля

  `email` varchar(50NOT NULL default '', --email

  `motto` text NOT NULL--девиз

  `revisioncount` int(10) unsigned NOT NULL default '20', --?количество версий страниц, созданных пользователем

  `changescount` int(10) unsigned NOT NULL default '50', --?количество изменений (пока не ясно чего)

  `doubleclickedit` enum('Y','N') NOT NULL default 'Y', --разрешать ли редактирование при даблклике

  `signuptime` datetime NOT NULL default '0000-00-00 00:00:00', --время регистрации

  `show_comments` enum('Y','N') NOT NULL default 'N', --показывать ли комментарии

  `bookmarks` text NOT NULL--закладки (список ссылок, как правило, вверху страницы)

  `lang` varchar(20NOT NULL default '',  --язык пользователя

  `show_spaces` enum('Y','N') NOT NULL default 'Y', --?возможно, показывать ли пробелы в вики именах

  `showdatetime` enum('Y','N') NOT NULL default 'Y', --?

  `typografica` enum('Y','N') NOT NULL default 'Y', --?

  `more` text NOT NULL--?

  `changepassword` varchar(100NOT NULL default '', --?

  `email_confirm` varchar(40NOT NULL default '', --?

  `last_change_date` datetime, --дата последнего изменения информации о пользователе (только в EDCWiki)

  `is_repl` enum('Y','N') NOT NULL default 'N', --реплецируется ли этот пользователь, или нет (только в EDCWiki)

  `last_repl_date` datetime, --дата последней репликации (только в EDCWiki)

  PRIMARY KEY  (`name`),

  KEY `idx_name` (`name`),

  KEY `idx_signuptime` (`signuptime`)

) TYPE=MyISAM;