Skip to content

Описание хранилища на MySQL

abbat edited this page Sep 17, 2014 · 5 revisions

Все данные в БД хранятся в UTF-8, InnoDB.

Описание таблиц

[broken] - список поломанных топиков/сообщений

[id_message] INT     - id топика/сообщения
[is_topic]   TINYINT - флаг того, что это топик, а не сообщение

[forum] - список форумов

[id]         INT          - PK, id
[id_group]   INT          - id группы форумов
[short_name] VARCHAR(64)  - короткое имя форума
[name]       VARCHAR(128) - полное имя форума
[rated]      INT          - оценивается ли форум
[in_top]     INT          - участвует ли оценки этого форума в топе
[rate_limit] INT          - лимит оценки в форуме

[group] - список групп форумов

[id]         INT          - PK, id
[name]       VARCHAR(100) - наименование группы
[sort_order] INT          - порядок сортировки

[message] - список сообщений

[id]               INT          - PK, id сообщения
[id_topic]         INT          - id темы
[id_parent]        INT          - id родительского сообщения
[id_user]          INT          - id автора
[id_forum]         INT          - id форума
[subject]          VARCHAR(128) - тема сообщения
[message_name]     VARCHAR(160) - имя сообщения
[user_nick]        VARCHAR(100) - имя автора сообщения
[message]          LONGBLOB     - текст сообщения
[id_article]       INT          - id статьи, если сообщение является статьей или 0
[message_date]     DATETIME     - дата создания сообщения
[update_date]      DATETIME     - дата обновления сообщения или 0
[user_role]        VARCHAR(50)  - статус автора сообщения
[user_title]       VARCHAR(100) - повязка пользователя
[user_title_color] INT          - цвет повязки пользователя
[last_moderated]   DATETIME     - дата последнего переноса сообщения
[closed]           TINYINT(1)   - флаг закрытия темы
[has_child]        TINYINT(1)   - флаг наличия дочерних сообщений
[compressed]       TINYINT(1)   - флаг сжатия тела сообщения

[message2send] - сообщения к отправке

[id]        INT          - PK, id сообщения (локальный)
[id_parent] INT          - id родителя
[id_forum]  INT          - id форума
[subject]   VARCHAR(128) - тема
[message]   LONGTEXT     - текст сообщения
[date]      DATETIME     - дата добавления
[draft]     TINYINT(1)   - флаг черновика

[message_topic] - список топиков

[id_message]   INT      - PK, id сообщения (FK [message].[id])
[id_forum]     INT      - id форума
[message_date] DATETIME - дата создания сообщения

[moderate] - список модерилок

[id_message] INT      - id сообщения
[id_topic]   INT      - id топика
[id_user]    INT      - id пользователя
[id_forum]   INT      - id форума
[created]    DATETIME - дата

UNIQUE([id_message], [id_user])

[moderate2send] - модерилки к отправке

[id]           INT         - PK, id (локальный)
[id_message]   INT         - id сообщения
[action]       VARCHAR(32) - действие {MoveMessage, DeleteMessage, DeleteThread, DeleteErrorMessage, SplitThread, CloseTopic, OpenTopic}
[id_forum]     INT         - id форума для перемещения
[description]  LONGTEXT    - описание
[as_moderator] TINYINT     - флаг "как модератор"
[date]         DATETIME    - дата добавления

[rating] - список рейтингов

[id_message]  INT        - id сообщения
[id_topic]    INT        - id топика
[id_user]     INT        - id пользователя
[user_rating] INT        - рейтинг пользователя
[rate]        INT        - оценка
[rate_date]   DATETIME   - дата
[rate_type]   TINYINT(1) - тип оценки (0 - смайл, 1 - +/-, 2 - балл)

UNIQUE([id_message], [id_user], [rate_type])

[rating2send] - рейтинг к отправке

[id]         INT      - PK, id (локальный)
[id_message] INT      - id сообщения
[rate]       INT      - рейтинг
[date]       DATETIME - дата добавления

[row_version] - версии строк

[key]   VARCHAR(100) - PK, ключ
[value] VARCHAR(100) - значение

[subscribed] - список подписаных форумов

[id_forum] INT     - PK, id форума
[is_first] TINYINT - true, если первая синхронизация

[unread] - список непрочитаных сообщений

[id_message]     INT      - PK, id сообщения
[id_parent]      INT      - id родительского сообщения
[id_forum]       INT      - id форума
[id_topic]       INT      - id топика
[id_parent_user] INT      - id пользователя, которому идет ответ
[message_date]   DATETIME - дата

[user] - список пользователей

[id]             INT          - PK, id пользователя
[name]           VARCHAR(60)  - логин пользователя
[nick]           VARCHAR(100) - псевдоним пользователя
[real_name]      VARCHAR(80)  - реальное имя пользователя
[email]          VARCHAR(60)  - публичный email пользователя
[homepage]       VARCHAR(120) - домашняя страница
[specialization] VARCHAR(100) - специализация
[where_from]     VARCHAR(100) - откуда
[origin]         VARCHAR(258) - подпись (исправлена с 255 на 258 из за проблем с MySQL под Windows)

[version] - версии хранилища

[key]   VARCHAR(100) - PK, ключ
[value] VARCHAR(100) - значение

Содержимое таблицы с версиями хранилища более не используется и оставлена в целях совместимости.