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

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

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


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


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

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

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

Все идет к тому, что никакие ссылки менять не нужно.
...
Рейтинг: 0 / 0
01.03.2013, 08:36
    #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
01.03.2013, 13:20
    #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
01.03.2013, 17:02
    #38171281
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
БД для форума, хранение ссылок
softwarerТак вот, любое мало-мальски вменяемое решение хранит текст сообщения, а представление либо генерирует на лету, либо кеширует.
Такой подход понятен. Но я думал, что его не используют, т.к. он увеличивает нагрузку — для каждого посетителя нужно сгенерировать HTML-текст при каждом обращении (если не кешировать).
Я считал, что либо тексты сообщений хранятся в своем исходном виде (в виде BBCode или HTML, но именно в том виде, в котором их ввел пользователь), либо парсятся до всех токенов.
Однако форумы мне делать не доводилось, поэтому что на практике более оптимально, я не знаю.

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

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

2. При разделении сообщения на два, у одного из них надо сохранить прежний ID. Тогда на него будут указывать существующие ссылки.
...
Рейтинг: 0 / 0
01.03.2013, 19:52
    #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]