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;