Внимание! Форум временно закрыт. Все вопросы вы можете задать на странице MaxSite CMS в Github

[FAQ]Описание таблиц БД MaxSiteCMS, Вопросы по структуре БД

Наиболее частые вопросы по MaxSite CMS.
Аватар пользователя
searchingman
Модератор
Сообщений: 1392
Зарегистрирован: 28 май 2012, 16:02

[FAQ]Описание таблиц БД MaxSiteCMS, Вопросы по структуре БД

Сообщение searchingman » 07 окт 2013, 11:47

Полное описание таблиц БД MaxSite CMS.


Решил немного "покопать" структуру БД.
Возникло несколько вопросов.

В таблице 'comments' в коде не используются поля 'comments_rating', 'comments_type'.
Max, поясни для чего задумывались эти поля?
Есть мысли для чего это может использоваться, но хотелось бы послушать первоисточник. ;)

Аватар пользователя
MAX
Администратор
Сообщений: 3179
Зарегистрирован: 31 янв 2009, 19:02

Re: Вопросы по структуре БД

Сообщение MAX » 07 окт 2013, 12:27

comments_rating — голос или рейтинг комментария.

comments_type — тип комментария (обычный или пинг). Сейчас пинги не используются, так что поле никак не используется.

Аватар пользователя
searchingman
Модератор
Сообщений: 1392
Зарегистрирован: 28 май 2012, 16:02

Re: Вопросы по структуре БД

Сообщение searchingman » 07 окт 2013, 16:23

MAX писал(а):comments_rating — голос или рейтинг комментария.

comments_type — тип комментария (обычный или пинг). Сейчас пинги не используются, так что поле никак не используется.

Спасибо.

Max, поясни для чего задумывались следующие поля в таблице 'page' ?
- 'page_content2'
- 'page_rating'
- 'page_rating_count'
- 'page_min_user_level'
- 'page_allow_group'
- 'page_lang'

Аватар пользователя
MAX
Администратор
Сообщений: 3179
Зарегистрирован: 31 янв 2009, 19:02

Re: Вопросы по структуре БД

Сообщение MAX » 07 окт 2013, 17:58

'page_content2' — что-то вроде короткого анонса. После появился cut и надобность отпала.

'page_rating', 'page_rating_count' — для рейтинга страниц.

'page_min_user_level', 'page_allow_group' — что-то вроде уровня доступа к записи.

'page_lang' — предполагалось, что в будущем можно будет делать тексты на разных языках и отдавать посетителю с учетом этого поля.

jogurt
Сообщений: 670
Зарегистрирован: 28 окт 2009, 12:18

Re: Вопросы по структуре БД

Сообщение jogurt » 08 окт 2013, 09:48

- 'page_rating' - общий рейтинг (сумма)
- 'page_rating_count' - число проголосовавших.
Используется плагином rater (хотя хотелось бы уже какую-то альтернативу ему адекватную увидеть, да)))

'page_min_user_level', 'page_allow_group' - а ведь интересная задумка в потенциале для тех, кто некий платный доступ к части контента организует на своих проектах. Или, допустим, группового чата.
Еще, кстати, мысль такая по этой части - если что-то вроде page_(com?)user_id_allow сделать, то по идее можно было бы реализовать систему приватных сообщений (переписки) между юзерами/комюзерами по схеме:
1. создается страница (видимо, особого типа, обзовем его, допустим, message), к которой доступ только у отмеченных юзеров/комюзеров есть (по id);
2. email-ом отправляется указанным юзерам уведомление о получении (то бишь о создании) такой страницы.
3. дальнейшее частное общение сообщающиеся таким образом юзеры могут вести в комментариях к этой странице (правда тогда и комментарии должны быть скрыты от остальных юзеров, доступа к странице не имеющих).

Ну это так, мыслишки по теме.

Аватар пользователя
MAX
Администратор
Сообщений: 3179
Зарегистрирован: 31 янв 2009, 19:02

Re: Вопросы по структуре БД

Сообщение MAX » 08 окт 2013, 11:39

База придумывалась в 2008 из расчета увеличения функционала системы. В процессе что-то поменялось, что-то так и осталось нереализованным. Структуру я не менял, чтобы не создавать проблем совместимости. В принцуипе лишние поля ничего не занимают, поэтому проблем не вижу.

Аватар пользователя
searchingman
Модератор
Сообщений: 1392
Зарегистрирован: 28 май 2012, 16:02

Re: Вопросы по структуре БД

Сообщение searchingman » 09 окт 2013, 18:59

Max, спасибо за ответы.

Еще несколько вопросов по назначению полей.

Таблица 'comusers'
- поле 'comusers_allow_publish' ???

Таблица 'groups'
- поле 'groups_rules' ???

Таблица 'users'
- поле 'users_levels_id' ???
- поле 'users_rules' ???


Для чего нужна таблица 'links'. Она вроде в админке никак не задействована.

Аватар пользователя
MAX
Администратор
Сообщений: 3179
Зарегистрирован: 31 янв 2009, 19:02

Re: Вопросы по структуре БД

Сообщение MAX » 09 окт 2013, 20:35

Откопал свои записи 2008 года. Тут всё, что задумывалось изначально. Думаю, так будет проще.

 Свернуть/Развернуть спойлер
TABLE page (
page_id - номер записи
page_type_id - тип записи -> таблица "page_type"
page_id_parent - родитель
page_date_publish - дата публикации
page_date_dead - дата автопрекращения
page_last_modified - дата последней модификации
page_status - статус (published - опубликовано для всех, protected - по паролю, private - личное, draft - черновик)
page_menu_order - порядок в меню
page_slug - короткая ссылка
page_view_count - кол-во просмотров
page_rating - рейтинг страницы
page_title - заголовок
page_content - текст
page_content2 - второй текст (короткий)
page_password - пароль для доступа
page_comment_allow - разрешения на комментирование
page_ping_allow - разрешение на пинг
page_id_user - id автора -> таблица "users"
page_min_user_level - минимальный уровень доступа для пользователя
page_allow_group - разрешения только для одной группы
page_lang - язык страницы
)

TABLE page_type (
page_type_id - id типа записи
page_type_name - название типа
page_type_slug - короткая ссылка
page_type_menu_order - порядок в меню
)

TABLE users (
users_id - id пользователя
users_levels_id - уровень -> таблица "levels"
users_groups_id - группа -> таблица "groups"
users_login - логин
users_password - пароль
users_first_name - фамилия
users_last_name - имя
users_nik - ник
users_icq
users_email
users_url
users_date_birth - дата рождения
users_msn
users_jaber
user_skype
users_avatar_url - адрес аватарки
users_description - о себе
users_ip_register - ip регистрации
users_show_smiles - отображать смайлики
users_show_wis_editor - использовать визуальный редактор
users_users_time_zone - временная зона
users_language - язык
users_skins - шкура
users_notify - уведомление на комментарии по почте
users_last_visit - время последнего визита
users_admin_note - комментарий админа
users_activate_string - строча активации
users_activate_key - ключ активации
users_rules - разрешения юзера - серилизованный массив
)

TABLE levels (
levels_id - id уровня
levels_name - название уровня
levels_rules - разрешения - массив
)

TABLE groups (
groups_id - id группы
groups_name - название группы
groups_rules - разрешения группы - массив
)

TABLE meta (
meta_id - id меты
meta_id_obj - номер объекта
meta_type - тип мета
meta_table - связка с другой таблицей, если есть
meta_key - ключ
meta_value - значение
meta_name - название ключа
meta_desc - описание ключа
meta_menu_order - порядок в меню
meta_slug - короткая ссылка
)

### meta - универсальная таблица, где хранятся настройки и дополнительные поля для остальных таблиц и данных. Например нам нужно получить все мета-поля записи 34: meta_type=page, meta_id_obj=34. Или например все метки всех страниц: meta_type=page, meta_key=tags.

Если нужно получить настройки сайта, то: meta_type=options_general. Для несуществующих таблиц указываем meta_id_obj=0

Например для получения адреса картинки для рубрики 7: meta_type=category, meta_id_obj=7, meta_key=url_img


TABLE category (
category_id - id рубрики
category_id_parent - id родителя
category_type - тип рубрики кому принадлежит -> page, links
category_name - название рубрики
category_desc - описание
category_slug - короткая ссылка
category_menu_order - порядок в меню
)

TABLE cat2obj (
category_id - id рубрики
page_id - id страницы
links_id - id линка
)

### cat2obj - связующая таблица между рубриками и страницами и линками. Теоретически мы можем связать page с links. Хз кому это нужно... Если не катит, то нужно делать cat2page и cat2links


TABLE links (
links_id - id ссылки
links_url
links_name
links_desc
links_rel
links_target
links_menu_order
links_visible
links_rating
links_image
links_rss
)

### Поля взял из WordPress. В принципе все понятно. Нужен ли родитель?..

TABLE comments (
comments_id - id коммента
comments_parent - родитель - если древовидные комменты
comments_page_id - номер страницы
comments_user_id - если это коммент зарегистрированного участника
comments_name
comments_url
comments_email
comments_subscribe - подписка да-нет
comments_ip - ip комментария
comments_date - дата
comments_content - текст
comments_approved - одобренный комментарий да-нет
comments_type - тип обычный или пинг
comments_password - пароль для редактирования и подписки
comments_rating - рейтинг или голос за комментарий
)


--------------------

users_skins - Для некоторых страниц, например админских, можно было бы вынести скины на уровень css. Ну дальше понятно - пользователь выбрал нужный скин - он автоматом применился.

page_max_user_level и page_max_group_level - может быть действительно лишнее.


Для чего нужна таблица 'links'. Она вроде в админке никак не задействована.


Делал по аналогии с WordPress. Потом понял, что сморозил глупость, но не удалил по той простой причине, что функционал рубрик может работать не только с таблицей category, но и с links. А это иерархическая структура. В теории можно задействовать links как вторые рубрики. Выпиливать функционал как-то рука не поднимается...

Аватар пользователя
searchingman
Модератор
Сообщений: 1392
Зарегистрирован: 28 май 2012, 16:02

Re: Вопросы по структуре БД

Сообщение searchingman » 10 окт 2013, 07:46

MAX писал(а):Откопал свои записи 2008 года. Тут всё, что задумывалось изначально.

Спасибо.

В итоге набросал полное описание таблиц БД MaxSite CMS.

Если кто-то найдет неточности в описании пишите , поправлю.


Вернуться в «FAQ»

Кто сейчас на форуме

Пользователь просматривает форум: нет зарегистрированных пользователей

cron