2013-02-15 4 views
0

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

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

Другой вариант, который, как я думал, состоял в том, чтобы иметь строку в потоке и иметь поле, где я могу добавить (или прочитать) массив для каждого потока, который содержит все подписанные идентификаторы пользователя. Это ускоряет чтение, поскольку количество обращений к базам данных меньше (т. Е. Когда был получен новый ответ, для получения всех идентификаторов пользователя требуется только один вызов базы данных), но я думаю, что он может быть медленнее для вставок при добавлении нового подписчика так как мне пришлось бы найти строку для потока, получить существующий массив, а затем добавить идентификатор пользователя в существующий массив.

Окончательный вариант, очень похожий на второй, будет иметь таблицу подписки пользователя, в которой каждая строка является идентификатором пользователя, а затем имеет массив подписанных потоков.

Какой будет лучший способ? На данный момент мое единственное требование - отправлять пользователей по электронной почте на новые сообщения и ответы, но в будущем я могу расширить его, чтобы включить возможность для пользователей перечислять свои подписанные потоки и т. Д., Как это делают многие основные форумы.

ответ

0

На мой взгляд, ваши два варианта хороши, за исключением array. Вы можете просто пойти за таблицей, которая содержит unique id для потока, и если пользователь нажал кнопку подписки, ее можно добавить с помощью id и thread id. Вы можете назвать это, subscription table.

Я думаю, что массив может пригодиться, если пользователь начнет подписываться гораздо больше потоков. Это зависит от того, насколько большой будет ваш форум.

Смежные вопросы