NPJ next: Документация/ТаблицыБазы ...

Главная | Каталог | Изменения | НовыеКомментарии | Пользователи | Вам запрещён доступРегистрация | Вход:  Пароль:  

Таблицы в схеме базы данных


Оглавление документа

1. Диаграмма таблиц



2. Большая диаграмма со всеми полями



3. Соответствия типов полей


MySQL Oracle
int NUMBER
varcharVARCHAR2
datetimeDATE
text CLOB

Далее следует описание ( Устройство БД )

4. NPJ_ACLS


здесь хранятся ACL для всех записей и banACL для журналов
структура хранения довольно самоописывающая, просто посмотрите на содержимое
(мне бы хотелось узнать, какие поля что означают)

Имя Тип Описание
OBJECT_ID NUMBER
OBJECT_TYPEVARCHAR2(20)
OBJECT_RIGHTVARCHAR2(20)
ACLCLOB

5. NPJ_BAN_IP


результаты бана по IP, который осуществляется на основе «антироботовой» защиты комментирования

Имя ТипОписание
ID NUMBERID
IP VARCHAR2(16) IP
IPLONG NUMBER
BANNED_DATETIME DATE

6. NPJ_COMMENTS


здесь хранятся все комментарии к записям
структура хранения тоже кажется довольно прозрачной
parent_id, lft_id, rgt_id – поля, по которым строится дерево дискуссий

Имя Тип Описание
COMMENT_ID NUMBER ID
ACTIVE NUMBER
FROZEN NUMBER
PIC_ID NUMBER ID аватара пользователя
SUBJECT VARCHAR2(250) Тема
BODY_POST CLOB Текст комментария
USER_ID NUMBER ID пользователя
USER_LOGIN VARCHAR2(20) Логин пользователя
USER_NAME VARCHAR2(250) Имя пользователя
USER_NODE_ID VARCHAR2(20) Узел пользователя?
CREATED_DATETIME DATE Дата создания
IP_XFF VARCHAR2(250)
RECORD_ID NUMBER ID откомментированной записи
PARENT_ID NUMBER
LFT_ID NUMBER
RGT_ID NUMBER
REP_ORIGINAL_ID NUMBER
REP_NODE_ID VARCHAR2(20)
REPLICATOR_USER_ID NUMBER
DISALLOW_REPLICATE NUMBER(1, 0)

7. NPJ_COMMENTS_FILTERED


Community-filter part. So called “Shtorki dlja kommentariev”

т.н. «шторки» – фильтры комментариев для отдельных сообществ.
хранится ид отфильтрованной ветки; ид журнала, для которого наложен фильтр; и модератор, сделавший это 
Имя Тип Описание
ID NUMBER ID
COMMENT_ID NUMBER ID комментария
FILTER_USER_ID NUMBER ID журнала
MODERATOR_ID NUMBER ID модератора, сделавшего фильтр
CREATED_DATETIME DATE Дата создания фильтра

8. NPJ_COMMENTS_REPLICAS


вспомогательная таблица для учёта реплицированных комментариев
Имя Тип Описание
COMMENT_ID NUMBER ID комментария
REPLICATED_TO_NODE_ID VARCHAR2(20)
REPLICATED_TO_COMMENT_ID NUMBER
REPLICATED_DATETIME DATE

9. NPJ_CSA


таблица для хранения временных ключей межузловой авторизации
Имя Тип Описание
ID NUMBER
CSA VARCHAR2(50)

10. NPJ_GROUPS


«отношения между пользователями»: группы. Например, «все друзья этого пользователя».
у каждого аккаунта (пользователя, РГ) может быть произвольное число таких «групп», куда попадают другие пользователи, с которыми у него есть отношения.
есть системные группы is_system=1, которые нельзя удалить руками их владельца. Например «все конфиденты».
есть метасистемные группы is_system=2..4 – они используются, чтобы при создании нового аккаунта какого-то типа, создать нужный ассортимент системных групп. =2 – для пользователя, =4 – для РГ.
user_id – к какому аккаунту относится эта группа
group_rank – уровень группы. Если группа рангом 2, то все её члены как бы «входят» во все группы ранга 1. Обратите внимание, как устроены системные группы «члены/модераторы»
group_type – не используется нигде.
Имя Тип Описание
GROUP_ID NUMBER ID
GROUP_NAME VARCHAR2(100) Имя группы
USER_ID NUMBER ID пользователя, для которого данная группа
GROUP_RANK NUMBER Уровень группы
IS_SYSTEM NUMBER(4, 0) Cистемная группа
GROUP_TYPE NUMBER Не используется
POS NUMBER
IS_DEFAULT NUMBER(4, 0)

11. NPJ_LINKS


таблица перекрёстных ссылок между записями, существует для action Backlinks.
Имя Тип Описание
LINK_ID NUMBER ID
FROM_USER_ID NUMBER
FROM_ID NUMBER
TO_USER_ID NUMBER
TO_ID NUMBER
TO_SUPERTAG VARCHAR2(250)
TO_TAG VARCHAR2(250)
LINK_TEXT VARCHAR2(250)

12. NPJ_MAILDEBUG


таблица для складывания в неё входящих на узел писем, которые не удалось распознать как команды на создание/редактирование записей/комментариев
Имя Тип Описание
MAIL_ID NUMBER ID
BODY CLOB Текст письма
ERROR VARCHAR2(250) Текст сообщения об ошибке
DATETIME DATE Дата поступления

13. NPJ_NODES


таблица с актуальным перечнем узлов НПЖСети.
если узел не Npj Name Server, то содержимое этой таблицы будет перезаписываться при каждом получении обновления с NNS.
is_local – это ваш узел!
Имя Тип Описание
TITLE VARCHAR2(250) Название
NODE_ID VARCHAR2(20) ID
URL VARCHAR2(250) URL узла
IS_LOCAL NUMBER =1, если это наш узел, иначе =0
IS_NNS NUMBER =1, если узел – Npj Name Server, иначе =0
CREATED_DATETIME DATE Дата создания
NPJ_VERSION VARCHAR2(20) Версия NPJ
USER_PICTURES_DIR VARCHAR2(50) Каталог для хранения пользовательских аватар
PASSWD VARCHAR2(20) Пароль. Непонятно, чей
CAN_NNS NUMBER
EMAIL VARCHAR2(100) E-Mail
IP VARCHAR2(100)
ALTERNATE_IP VARCHAR2(20)

14. NPJ_NPZ


таблица заданий для Http Cron. learn more at http://wackowiki.com/htcron
Имя Тип Описание
ID NUMBER ID
SPEC VARCHAR2(250)
COMMAND VARCHAR2(250)
LAST VARCHAR2(100)
CHUNK VARCHAR2(200)
TIME_LAST_CHUNK VARCHAR2(100)
STATE NUMBER
PARAM VARCHAR2(50)

15. NPJ_PROFILES


здесь хранятся «профили» аккаунтов. Т.е. та информация, которая является «описательной» (дополнительной) для журналов пользователей/сообществ.
lft_id, rgt_id – пока не используются
*_template – пока не используется
*_membership – группа какого ранга имеет соответствующие права?
last_updated – пока не поддерживается
email_confirm – если пустой, то емайл подтверждён. Иначе – шифр подтверждения
Имя Тип Описание
USER_ID NUMBER ID пользователя
LFT_ID NUMBER Пока не используется
RGT_ID NUMBER Пока не используется
PARENT_ID NUMBER
TOTAL_POSTED NUMBER
SECURITY_TYPE NUMBER
ACCOUNT_TEMPLATE VARCHAR2(20) Пока не используется
FRIENDS_TEMPLATE VARCHAR2(20) Пока не используется
DEFAULT_MEMBERSHIP NUMBER
POST_MEMBERSHIP NUMBER
ANNOUNCE_MEMBERSHIP NUMBER
OWNER_MEMBERSHIP NUMBER
CREATION_DATE DATE Дата создания
LAST_UPDATED DATE Пока не поддерживается
EMAIL VARCHAR2(250) E-Mail аккаунта
EMAIL_CONFIRM VARCHAR2(100) Если пустой, то емайл подтверждён. Иначе – шифр подтверждения
ICQ_UIN VARCHAR2(20) ICQ UIN
WEBSITE_URL VARCHAR2(250) URL сайта
WEBSITE_NAME VARCHAR2(250) Имя сайта
FILE_URL_PREFIX VARCHAR2(250)
JOURNAL_NAME VARCHAR2(250) Имя журнала
JOURNAL_DESC CLOB Описание журнала
BIO CLOB Биография
INTERESTS CLOB Интересы
SEX NUMBER Пол. Неясно, какие значения принимает
CITY VARCHAR2(100) Город
REGION VARCHAR2(100) Регион
COUNTRY VARCHAR2(100) Страна
BIRTHDAY DATE Дата рождения
NOTIFY_COMMENTS NUMBER(1, 0) Уведомлять о комментариях?
REPLICATION_ALLOWED NUMBER(1, 0) Разрешена репликация?
FRIENDS_PAGE_SIZE NUMBER
PERSONAL_PAGE_SIZE NUMBER
RECENTCHANGES_SIZE NUMBER
TEMPORARY_PASSWORD VARCHAR2(32)
TEMPORARY_PASSWORD_CREATED DATE
NUMBER_FRIENDS NUMBER
NUMBER_FRIENDOF NUMBER
SKIN VARCHAR2(20) Шкурка для UI
ADVANCED CLOB
TEMPLATE_ANNOUNCE VARCHAR2(250) Шаблон для анонсов
TEMPLATE_DIGEST VARCHAR2(250) Шаблон для дайджестов

16. NPJ_RECORD_VERSIONS


здесь хранятся «версии» записей – их устаревшие тексты. При редактировании записи старое её состояние записывается сюда, и используется при диффах.
Имя Тип Описание
RECORD_ID NUMBER ID записи
VERSION_ID NUMBER ID
BODY CLOB Текст записи
BODY_R CLOB Текст записи (показывается при её отображении)
FORMATTING VARCHAR2(20)
EDITED_DATETIME DATE Дата изменения
VERSION_TAG VARCHAR2(100)
EDITED_USER_LOGIN VARCHAR2(20)
EDITED_USER_NAME VARCHAR2(250)
EDITED_USER_NODE_ID VARCHAR2(20)

17. NPJ_RECORDS


очень важная таблица, в которой хранятся записи (сообщения и документы, они же категории)
user_id – в каком журнале запись, author_id – кто написал запись. Всё это не имеет отношения к публикации сообщений в сообщества
*_r, *_post – разные степени отформатированности текстов. *_r показывается при отображении записи (и ещё доформатируется), *_post используется для сборки лент
default_show_parameter – фактически obsolete
group_1..4 – какие «группы доступа» (из таблицы npj_groups) установлены для записи. Если все нули – запись публична. Кроме этого, есть специальные комбинации для «приватной записи», «записи для всех конфидентов», «записи с доступом только в сообщества» и «записи для глобальной группы доступа».
keywords/crossposted – отформатированная строка про то, куда опубликована запись. Используется для того, чтобы показываться в ленте сообщений. Не для определения, куда опубликовано.
Имя Тип Описание
RECORD_ID NUMBER ID
TYPE NUMBER
USER_ID NUMBER ID журнала
AUTHOR_ID NUMBER ID автора
SUBJECT VARCHAR2(250) Тема
SUBJECT_R VARCHAR2(255) Тема (показывается при отображении записи)
SUBJECT_POST VARCHAR2(255) Тема (используется для сборки лент)
TAG VARCHAR2(250)
SUPERTAG VARCHAR2(250)
DEPTH NUMBER
IS_PARENT NUMBER
DEFAULT_SHOW_PARAMETER VARCHAR2(20) Не используется
DEFAULT_SHOW_PARAMETER_PARAM VARCHAR2(50) Не используется?
DEFAULT_SHOW_PARAMETER_ADD NUMBER Не используется?
DEFAULT_SHOW_PARAMETER_MORE VARCHAR2(20) Не используется?
DEF_SHOW_PARAMETER_MORE_PARAM VARCHAR2(50) Не используется?
BODY CLOB Текст записи
BODY_R CLOB Текст (показывается при отображении записи)
BODY_POST CLOB Текст (используется для сборки лент)
BODY_TOC CLOB
BODY_OPTIONS VARCHAR2(250)
FORMATTING VARCHAR2(20)
VERSION_TAG VARCHAR2(100)
PIC_ID NUMBER ID аватара пользователя
USER_DATETIME DATE
CREATED_DATETIME DATE Дата создания
EDITED_DATETIME DATE Дата изменения
COMMENTED_DATETIME DATE Дата последнего комментария
LAST_COMMENT_ID NUMBER ID последнего комментария
DISALLOW_COMMENTS NUMBER(1, 0) Запрещены комментарии?
DISALLOW_SYNDICATE NUMBER(1, 0) Запрещена синдикация?
DISALLOW_REPLICATE NUMBER(1, 0) Запрещена репликация?
DISALLOW_NOTIFY_COMMENTS NUMBER(1, 0) Запрещены уведомления о комментариях?
NUMBER_COMMENTS NUMBER Количество комментариев
IS_DIGEST NUMBER(1, 0) Это дайджест
IS_ANNOUNCE NUMBER(1, 0) Это анонс
IS_KEYWORD NUMBER(1, 0) Это рубрика
TEMPLATE VARCHAR2(20) Шаблон для записи?
BY_MODULE VARCHAR2(50)
GROUP_VERSIONS NUMBER(1, 0)
GROUP1 NUMBER Группа доступа
GROUP2 NUMBER Группа доступа
GROUP3 NUMBER Группа доступа
GROUP4 NUMBER Группа доступа
KEYWORDS CLOB Отформатированная строка про то, куда опубликована запись. Используется для того, чтобы показываться в ленте сообщений
CROSSPOSTED CLOB Отформатированная строка про то, куда опубликована запись. Используется для того, чтобы показываться в ленте сообщений
FILTER CLOB
EDITED_USER_LOGIN VARCHAR2(20)
EDITED_USER_NAME VARCHAR2(250)
EDITED_USER_NODE_ID VARCHAR2(20)

18. NPJ_RECORDS_RARE

не у всех записей есть соответствующая строчка в этой таблице.
эта таблица с дополнительными данными для «извращённых» записей, типа «анонсов документов», «дайджестов» и «реплицированных записей».
Имя Тип Описание
RECORD_ID NUMBER ID записи
ANNOUNCED_ID NUMBER
ANNOUNCED_SUPERTAG VARCHAR2(250)
ANNOUNCED_TITLE VARCHAR2(250)
ANNOUNCED_COMMENTS NUMBER
ANNOUNCED_DISALLOW_COMMENTS NUMBER Запрещены комментарии?
DIGEST_DTFROM DATE
DIGEST_DTTO DATE
DIGEST_FILTER NUMBER
REP_NODE_ID VARCHAR2(20)
REPLICATOR_USER_ID NUMBER
REP_ORIGINAL_ID NUMBER

19. NPJ_RECORDS_REF


вторая очень важная таблица, обычно называемая «рефы». В ней хранятся связи «запись такая-то опубликована туда-то».
таблица используется для выборки страницы ленты (в т.н. «суперзапросе»)
публикация в сообщество здесь ничем существенным не отличается от публикации в рубрику.
owner_id – в каком журнале запись, keyword_id – какая рубрика (ид из таблицы записей), keyword_user_id – в каком журнале эта рубрика
syndicate – флаг, позволяющий в этой таблице понимать, нужно ли забирать эту запись при сборке ленты
priority – глубина транзитивного замыкания, которое производится при публикации в подрубрику (в этом случае в рефы пишутся строки о а) публикации в журнал, б) публикации в надрубрику и в) публикации в подрубрику – с разным приоритетом, что позволяет потом не собирать дубли).
Имя Тип Описание
REF_ID NUMBER ID
RECORD_ID NUMBER ID записи
OWNER_ID NUMBER В каком журнале запись
KEYWORD_ID NUMBER ID рубрики
KEYWORD_USER_ID NUMBER В каком журнале рубрика
GROUP1 NUMBER Группа доступа
GROUP2 NUMBER Группа доступа
GROUP3 NUMBER Группа доступа
GROUP4 NUMBER Группа доступа
SERVER_DATETIME DATE
USER_DATETIME DATE
LAST_COMMENT_ID NUMBER ID последнего комментария
COMMENTED_DATETIME DATE Дата последнего комментария
PRIORITY NUMBER Глубина транзитивного замыкания, которое производится при публикации в подрубрику
NEED_MODERATION NUMBER Требуется модерация
SYNDICATE NUMBER Нужно ли забирать эту запись при сборке ленты
ANNOUNCE NUMBER

20. NPJ_RECORDS_REF_RULES


правила для автоматического изменения свойств записи при публикацию в отдельную подрубрику (т.н. «автоматизация рубрик»)
Имя Тип Описание
ID NUMBER ID
KEYWORD_ID NUMBER ID рубрики
FIELD VARCHAR2(250)
VALUE VARCHAR2(250)

21. NPJ_RECORDS_REPLICAS


информация о реплицированных сообщениях (из записей реплицируются только сообщения)
Имя Тип Описание
RECORD_ID NUMBER ID записи
REPLICATED_TO_NODE_ID VARCHAR2(20)
REPLICATED_TO_RECORD_ID NUMBER
REPLICATED_DATETIME DATE

22. NPJ_REPLICA_DEST_RULES


правила репликации, для пункта назначения
Имя Тип Описание
DEST_RULE_ID NUMBER ID
REP_RULE_ID NUMBER ID правила для пункта отправки
NODE_ID VARCHAR2(20) ID узла назначения
OWNER_ID NUMBER ID журнала
DEST_ID NUMBER ID пункта назначения
RECORD_ID NUMBER ID записи

23. NPJ_REPLICA_DESTS


пункты назначения (приёмки) реплицируемых данных
Имя Тип Описание
DEST_RULE_ID NUMBER ID правила для пункта назначения
KEYWORD_ID NUMBER ID рубрики

24. NPJ_REPLICA_QUEUE


очередь на репликацию
Имя Тип Описание
ID NUMBER ID
REP_RULE_ID NUMBER ID правила для пункта отправки
OBJECT_ID NUMBER
OBJECT_CLASS VARCHAR2(20)
NODE_ID VARCHAR2(20) ID узла
DATETIME DATE

25. NPJ_REPLICA_RULES


правила репликации для пунктов отправки
Имя Тип Описание
REP_RULE_ID NUMBER ID
OWNER_ID NUMBER ID журнала
NODE_ID VARCHAR2(20) ID узла
RECORD_ID NUMBER ID записи
DATE_FROM DATE
DATE_TO DATE
DONT_DOUBLEREPLICATE NUMBER Не повторять репликацию?
MAXPERDAY NUMBER
MAXDEPTH NUMBER
AUTHORS_WHITE CLOB
AUTHORS_BLACK CLOB
TOPIC_WHITE CLOB
TOPIC_BLACK CLOB
TODAYCOUNT NUMBER
LAST DATE Дата последней репликации?
FACET_WHITE CLOB
FACET_BLACK CLOB
VALID NUMBER(4, 0)
REPTYPE NUMBER(4, 0)

26. NPJ_SUBSCRIPTION


здесь хранятся данные о том, кто на что подписался по электронной почте.
где-то вnode@npj:treeесть даже описание формата.
Имя Тип Описание
OBJECT_CLASS VARCHAR2(20)
OBJECT_ID NUMBER
OBJECT_METHOD VARCHAR2(20)
METHOD_OPTION NUMBER
USER_ID NUMBER ID пользователя

27. NPJ_USAGE_STATS


внутренняя статистика, какие методы запрашиваются и кем. По-умолчанию отключена, на узле npj.ru отключена после запуска в публичное использование.
Имя Тип Описание
ID NUMBER ID
EVENT VARCHAR2(20)
PRINCIPAL_USER_ID NUMBER Кто запросил метод?
OBJECT_ID NUMBER
OBJECT_ADDRESS VARCHAR2(250)
OBJECT_CLASS VARCHAR2(20)
OBJECT_METHOD VARCHAR2(50)
OBJECT_PARAMS VARCHAR2(50)
SERVER_DATETIME DATE
ALREADY_PROCESSED NUMBER

28. NPJ_USER_GROUPS


«отношения между пользователями»: с кем связан пользователь.
раньше были «группы» (не РГ!), теперь кто в них входит.
group_id – это про таблицу npj_groups
user_id – это какой пользователь является, например, «моим другом».
keyword_id – для ускорения выборок и возможности подписаться на подрубрику в «корреспонденты»
Имя Тип Описание
UG_ID NUMBER ID
GROUP_ID NUMBER ID группы
USER_ID NUMBER ID пользователя
KEYWORD_ID NUMBER ID рубрики

29. NPJ_USER_MENU


это меню ссылок пользователя, которое есть в minikui, criba, crabla, academic.
мелкая, вспомогательная табличка
Имя Тип Описание
ITEM_ID NUMBER ID
USER_ID NUMBER ID пользователя
NPJ_ADDRESS VARCHAR2(250) URL (локальный? Или любой?)
TITLE VARCHAR2(250) Заголовок ссылки
POS NUMBER Порядковый номер?

30. NPJ_USERPICS


здесь хранятся отметки о том, какие у пользователя юзерпики. Сами юзерпики хранятся в файловой системе
Имя Тип Описание
PIC_ID NUMBER ID
USER_ID NUMBER ID пользователя
DESCRIPTION VARCHAR2(50) Описание
HAVE_BIG VARCHAR2(5) Есть большой аватар
HAVE_SMALL VARCHAR2(5) Есть маленький аватар

31. NPJ_USERS


и последняя важная таблица, в которой хранятся аккаунты пользователей, а также сообществ и РГ
account_type – собственно, определяет, пользователь или РГ
account_class – см. «Классы аккаунтов» (где-то вnode::treeесть документация)
owner_user_id – кто создал этот аккаунт (очень полезно для сообществ, иногда интересно для пользователей)
domain_type – поле, позволяющее работать с адресами вида kuso.npj.ru
roles – obsolete поле, унаследованное из CMS
original_user_id – если этот аккаунт пришёл к нам с другого узла, то его id на том узле не тот, что на этом. Оригинальный (т.е. с того узла) ид мы храним в этом поле
root_record_id – запись, которая является «корневой» (адрес которой равен login@npj:, таг которой пуст)
Имя Тип Описание
USER_ID NUMBER ID
ROOT_RECORD_ID NUMBER ID корневой записи
LOGIN VARCHAR2(20) Логин
USER_NAME VARCHAR2(250) Имя пользователя
USER_LOGIN VARCHAR2(20) Логин пользователя (чем отличается от LOGIN?)
NODE_ID VARCHAR2(20) ID узла
OWNER_USER_ID NUMBER Создатель журнала
ACCOUNT_TYPE NUMBER Тип аккаунта
ACCOUNT_CLASS VARCHAR2(250) Класс аккаунта
POPULATE_TYPE NUMBER
DOMAIN_TYPE NUMBER Поле, позволяющее работать с адресами вида kuso.npj.ru
ALIVE NUMBER
PASSWORD VARCHAR2(32) Пароль
FORMATTING VARCHAR2(20)
ROLES VARCHAR2(250) Не используется
LAST_LOGIN_DATETIME DATE Дата последней авторизации
LAST_LOGOUT_DATETIME DATE Дата последней отмены авторизации
LOGIN_COOKIE VARCHAR2(32)
PIC_ID NUMBER ID аватара (по умолчанию?)
THEME VARCHAR2(20) Шкурка?
SKIN_OVERRIDE VARCHAR2(20)
GROUP_VERSIONS_OVERRIDE NUMBER
LANG VARCHAR2(20) Язык
MORE CLOB
CSA VARCHAR2(50) Ключ межузловой авторизации
EMAIL VARCHAR2(250) E-Mail
ORIGINAL_USER_ID NUMBER Оригинальный ID пользователя

 
Много файлов (3). [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]
Поделиться ссылкой