Структура форумов

monk

Новичок
Структура форумов

Уважаемые кодеры подскажите. Делаю форум, где форумы создают сами пользователи. Скажите как лучше хронить посты для форумов разных пользователей и разных топиков? Все в одну кучу, в одной таблице. Тоесть это десятки и сотни тысяч постов соответственно или лучше создавать для каждого id пользователя отдельную таблицу. Ну тогда быдет в базе около 300-400 таблиц. Это вообще вариант для БД Mysql? И для каждой таблицы посты ей соответствующии. Ну а форумы как и топики уже думаю делать в одну таблицу все, их будет меньше. Можно посчитать по форумам на 300 пользователей например, каждый создаст в среднем по 10 форумов (сделаю огданичение на 20 форумов) получаем 3000, ну или по максимому 400 юзеров по 20 форумов = 8000. Мелочь. Вот топиков будет побольше, но их не разделить. Нужно же будет сделать рейтинг популярных топиков или еще для чего-то потребуется выводить топики с разных форумов разных юзеров, тут и возникнут проблемы. Что по советуете?

-~{}~ 17.11.08 01:08:

Кстати, а каждая таблица MySQL это отдельный файл?

-~{}~ 17.11.08 01:10:

А ну да, конечно же отдельный, иначе слишком сложно

-~{}~ 17.11.08 01:36:

И еще вопрос попутно, а как лучше и как делают при подсчете постов и топиков. Каждый раз считают все или при создании/удалении топика или поста ставятся +1 или -1 в отдельной таблице статистики? Интересно.
 

fixxxer

К.О.
Партнер клуба
ты только что изобрел шардинг ;)

> Кстати, а каждая таблица MySQL это отдельный файл?

в myisam да, в innodb в зависимости от настроек.

я бы не стал юзать myisam для форума.

счетчики обычно денормализуют.

а вообще твои вопросы правильные, но шибко глобальные =) советую почитать книгу High Performance Mysql (2-е издание)
 

HraKK

Мудак
Команда форума
Скажу просто - проект мертвый откажись от него.
 

Crys

Двинутый новичок
Скажу просто - проект мертвый откажись от него.
Неправильно. Наоборот. Чем больше бесплатного фуфла, тем больше будут обращаться к профи. Поэтому надо новичков поощрять. Они наш хлеб.

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

HraKK

Мудак
Команда форума
Надо еще проще думать. Откуда ты возьмешь этих посетителей. Накуя посетителям создавать 20 форумов? Кто в них сидеть будет?!
 

monk

Новичок
Отвечаю на вопросы. Во-первых это вап сайт! Это очень важно. Ну тоесть PDA или называйте как хотите. Во-вторых форум будет приделан к существующему проекту вап чата, в котором онлайн пользователей около 150 уже есть. Всего постоянно живет в чате около 400 юзеров. Зарегистрировано около 60 000. Зачем им создавать форумы. Для этого будет стимул. Создатели самых крутых (популярных) форумов получат возможность нанимать своих модераторов. В общем получат статус полного администрирования своего проекта. Соответственно, проект раскручивают сами пользователи.

-~{}~ 17.11.08 13:05:

fixxxer
А есть ли High Performance Mysql (2-е издание) с переводом на русский? Объясни пожалуйста про денормализацию (Денормализация (denormalization) — намеренное приведение структуры базы данных в состояние, не соответствующее критериям нормализации, обычно проводимое с целью ускорения операций чтения из базы за счет добавления избыточных данных.) Простыми словами со случаем счетчика

-~{}~ 17.11.08 14:57:

Почитал про денормализацию и понял, что я ее уже использую в некоторых случаях давно. А в счетчике получается, что при добавлении нового поста, скажем, мы считаем все посты и записываем полученное значение в отдельную таблицу. Верно?
 

fixxxer

К.О.
Партнер клуба
как-то так да

счетчики надо увеличивать или уменьшать, а не писать в явном виде, чтобы не было проблем с параллельностью.

увеличивать-уменьшать для надежности следует на affected rows.

на русском нет, но там несложный язык, если ман по php читаешь то асилишь.
могу выложить в электронном виде.
 

monk

Новичок
fixxxer
Про параллельрость имеется ввиду множество запросов понимаю? Ну да, тоесть храним все посчеты в отдельной таблице.
Так все же как денормализуем affected rows или считаем пересчитываем все данные в измененной таблице при ее обновлении?

Спасибо, я уже скачал электронку в pdf!
 

HraKK

Мудак
Команда форума
150 пользователей, о боже.
Человек одумайся. Нанимать модераторов... бггг блин ну было бы смешно если б не так печально.
 

monk

Новичок
HraKK
но почему бы и нет, можно не называть это форумом, он так и не будет называться. Принцип работы такой же. Называйте это как угодно, пусть Клубом. Может будут тематические клубы, где так скажем призидент клуба будет сам управлять своим творением. Количество функций которые можно включить для так называемых клубов неограничено. Создание фотоальбомов для клуба, назначение встречь, объявления, обмен мнениями, поиск информации и другое. Каждый из пользователей сам выберет подходящий для него.

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

-~{}~ 17.11.08 15:44:

И еще добавлю, что потребности пользователей мобильного интернета отличаются от потребностей пользователей web
 

monk

Новичок
Где можно почитать еще про шардинг? И вот по поводу 300-400, 1000 и выше таблиц в одной БД это вариант? Каждому юзеру свою таблицу
 
Сверху