powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / БД для форума, хранение ссылок
9 сообщений из 9, страница 1 из 1
БД для форума, хранение ссылок
    #38156914
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос пока теоретический (и даже не факт, что он обретет материальность).
Но для информации хотелось бы знать.

Предположим планируется сделать самодельный форум. Как и положено в форуме, будут подфорумы, топики, посты, с возможностью цитирования, редактирования и т.д.
Также будет предусмотрен механизм переноса в архив старых тем. И возможно будет опция разделения очень больших топиков.
Все это потребует корректировки ссылок на посты, т.к. после переноса или разделения тем ссылки на топик или на посты топика изменятся.

Как обычно это реализуется?
При постинге анализируется текст и все ссылки копируются в отдельную таблицу, в которой фиксируется url и идентификатор поста? Это позволит легко найти все ссылки, принадлежащие или ссылающиеся определенным постам и топикам.
Или при разделении или переносы темы анализируются тексты всех постов и редактируются ссылки в тексте?
________________________
Мы смотрим с оптимизмом...
...в оптический прицел.
...
Рейтинг: 0 / 0
БД для форума, хранение ссылок
    #38169779
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
постарайтесь не хранить в урлах информацию о топике - только его код:
Код: sql
1.
www.sql.ru/forum/actualthread.aspx?tid=1005712


поэтому относительная ссылка на топик будет всегда одна:
Код: sql
1.
forum/actualthread.aspx?tid=1005712


всякие прочие редиректы и т.д., в зависимости от состояния топика, можно сделать на стороне сервера
...
Рейтинг: 0 / 0
БД для форума, хранение ссылок
    #38169860
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какая разница, в абсолютном виде хранится URL или в относительном?
При разделении темы или переносе ее в архив изменится весь URL, а не его база.
Кроме того, форум может переехать на другую платформу и тогда структура URL будет другой.
...
Рейтинг: 0 / 0
БД для форума, хранение ссылок
    #38169967
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.,

Идентификаторы постов от переноса в архив не поменяются. Поэтому и ссылки на конкрентые посты останутся верными.

А с разделением темы... Если была Тема1, и на нее были ссылки. А затем от нее отделилась Тема1-1. То куда должны указать прежние ссылки? Мне кажется, на прежнюю Тему1.

Все идет к тому, что никакие ссылки менять не нужно.
...
Рейтинг: 0 / 0
БД для форума, хранение ссылок
    #38170488
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherИдентификаторы постов от переноса в архив не поменяются. Поэтому и ссылки на конкрентые посты останутся верными.
Могут поменяться не идентификаторы, а URL.
Было "forum/actualthread.aspx?tid=1005712", стало "ubb/view.php?t=1005712".

Cane Cat FisherА с разделением темы... Если была Тема1, и на нее были ссылки. А затем от нее отделилась Тема1-1. То куда должны указать прежние ссылки? Мне кажется, на прежнюю Тему1.
Смотря какие ссылки. Ссылки могут ссылаться на конкретные посты или страницы, в этом случае они должны измениться.
...
Рейтинг: 0 / 0
БД для форума, хранение ссылок
    #38170874
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Могут поменяться не идентификаторы, а URL
Нет, не могут :) Прежде всего стоит понять, что есть две разных вещи - "текст сообщения" и "html-представление текста сообщения". Скажем, я пишу в нашем форуме [ m s g = 1 2 3 4 5 ], а движок в ответ на это показывает мне и другим ссылку наподобие h t t p : // s q l . ru / . . . & m i d = 1 2 3 4 5 Так вот, любое мало-мальски вменяемое решение хранит текст сообщения, а представление либо генерирует на лету, либо кеширует. Соответственно, никакой url в тексте сообщения просто-напросто не хранится и проблема поменять его не возникает.
...
Рейтинг: 0 / 0
БД для форума, хранение ссылок
    #38171281
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerТак вот, любое мало-мальски вменяемое решение хранит текст сообщения, а представление либо генерирует на лету, либо кеширует.
Такой подход понятен. Но я думал, что его не используют, т.к. он увеличивает нагрузку — для каждого посетителя нужно сгенерировать HTML-текст при каждом обращении (если не кешировать).
Я считал, что либо тексты сообщений хранятся в своем исходном виде (в виде BBCode или HTML, но именно в том виде, в котором их ввел пользователь), либо парсятся до всех токенов.
Однако форумы мне делать не доводилось, поэтому что на практике более оптимально, я не знаю.

И второй вопрос, что если ID сообщения или темы все же меняется?
Это может произойти при переносе темы в архив или при разделении сообщения на два.
Чем плохо мое первое предложение (при публикации сообщения извлекаются все ссылки и сохраняются в отдельную таблицу с привязкой к сообщению, эдакий самодельный аналог полнотекстового индекса)?
...
Рейтинг: 0 / 0
БД для форума, хранение ссылок
    #38171300
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.что если ID сообщения или темы все же меняется?
Это может произойти при переносе темы в архив или при разделении сообщения на два.

1. А не нужно менять ID'ы даже при переносе в архив.

2. При разделении сообщения на два, у одного из них надо сохранить прежний ID. Тогда на него будут указывать существующие ссылки.
...
Рейтинг: 0 / 0
БД для форума, хранение ссылок
    #38171502
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.т.к. он увеличивает нагрузку — для каждого посетителя нужно сгенерировать HTML-текст при каждом обращении (если не кешировать)
Никто не мешает выбрать решение сообразно нагрузке и прочим архитектурным возможностям и особенностям.

Alibek B.И второй вопрос, что если ID сообщения или темы все же меняется?
Не вижу причин. Нет абсолютно никакой объективной необходимости менять ID того же объекта. Если же объект расщепляется... с сообщением неактуально, это вообще вряд ли востребованная функция, а с темами всё просто. Можно или "отделить ветку в новую тему" с новым ID, либо - если уж извращаться - сделать у каждой темы новый ID, а для старого записать в базу "разделился на такие-то". Тогда по ссылке на старый ID можно будет показывать менюшку созданных тем
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / БД для форума, хранение ссылок
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]