дизайн БД для системы сообщений как на lоvе.mаil.ru или системы mаmbа.ru - Как лучше?

  • Автор темы php4all
  • Дата начала
Статус
В этой теме нельзя размещать новые ответы.

php4all

Guest
дизайн БД для системы сообщений как на lоvе.mаil.ru или системы mаmbа.ru - Как лучше?

Доброго всем времени суток!

Мне нужно создать систему сообщений как на lоvе.mаil.ru. Создать такую для меня не составляет проблемы,
но я бы хотел при этом учесть быстроту запросов, а также место в БД, а в этом у меня знаний не очень много.

Вообщем, вопрос ко всем: какие таблицы, сколько их, какие в них столбцы, какого типа эти столбцы, какая в них
информация
, какие ключи, какие индексы(+ их типы) нужно создать, чтобы такая система работала быстро с
миллиoнами пользователей.

Свои идеи я пока не буду писать, а то вдруг это кого-нибудь соблазнит думать в неправильном направлении. :eek: :confused: ;)
Прошу учесть следующее: в системе должны присутствовать папки, в них должны находиться контакты,
в каждом контакте должны отображаться множество сообщений(ВСЕ) между 2-я пользователями. При этом,
если один пользователь удаляет контакт другого пользователя у себя(а вместе с ним естественно и все сообщения),
то у другого пользователя эти сообщения должны остаться.

А может быть кто-нибудь знает, где можно достать исходники такой системы?

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

Заранее всем большое спасибо!
 

denver

?>Скриптер
Такое впечатление что этот love.mail.ru все знают :) Я вообще не в курсе и регистрироваться не стану
А что-то вы делали до этого с БД? Если нет, то что-нить попроще для начала возьмите, если да то поконкретнее вопрос давайте :)
 

Denix

Новичок
php4all


Если ужать твой вопрос, то получится нечто вроде: "Спроектируйте для меня базу , причем не менее чем в 3 вариантах, а я выберу".

Молодец, так держать!

Особенно понравилась фраза про "не только пару человек".
 

kost

Новичок
php4all
> Прошу ответить всех, у кого есть какие-нибудь идеи на этот счёт, а не только пару человек.

Появилась единственная идея. Пора переходить на php5all.
 

php4all

Guest
Вот уж не думал, что последует такая реакция! :(
Ничьи идеи я воровать не собираюсь. Просто дело в том, что если я не знаю, как правильно
спроектировать таблицы, то увидев здесь мои идеи все начнут обсуждать мою идею, которая
совсем может быть неправильная. Просто я часто наблюдал такое на форумах вот и написал так..

Вот здесь, на рисунке, можно посмотреть, как выглядит эта система:
http://img49.imageshack.us/img49/1815/lmruyh5.png
... если что-то непонятно задавайте вопросы. Описание есть в моём предыдущем сообщении.

Из моих идей что я определённо могу сказать, так это то что я думаю, что должна быть
таблица messages, в которой будут храниться сообщения пользователей. В ней должны
присутствовать столбцы message_id(integer), message(blob), message_type(tinyint), message_links_count(tinyint)
Первые 2 столбца говорят сами за себя, 3-ий это сообщение системное или простое, а 4-ый для того чтобы
знать сколько пользователей видят(ссылаются) это сообщение и если при удалении пользователя
знаечение равно 1, то его можно удалить из базы данных.
Я пока не решил лучше ли, если эта таблица будет принадлежать одному пользователю
или она будет содержать сообщения всех пользователей. Я думаю, что при милли онах blob-полей
такая таблица будет уступать в скорости обращения к ней таблице с небольшим количеством полей.
И разумно ли вообще решение, что эта таблица будет содержать сообщения всех пользователей?
Также есть таблица user, с содержанием данных пользователя и его ID.
Также должны быть столбцы briefcase_id и contact_id(id партнёра по переписке), но я ещё
точно не могу сказать где они должны находиться.

denver, спасибо хоть вы дружелюбно отреагировали. В BD я разбираюсь можно сказать только в
SQL-запросах хорошо, а вот как спроектировать её так, чтобы она ещё и быстро работала - тут у
меня мало опыта, но я знаю, что если с самого начала начать неправильно, то потом будет много
проблем, вот и хочу это обсудить.

master_x, в скромнoсти мне не занимать - верно подмечено! :D Умник!:D

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