Проектирование баз данных в ведущих блог системах

Как осуществление изучения я пытаюсь поместить меня ведущая блог система.

Цель состоит в том, чтобы кодировать что-то, что позволит мне создать несколько блогов, как blogger.com или wordpress.com, но очень упрощенный.

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

Лучше иметь одну большую таблицу, содержа сообщения из всех блогов всех пользователей (как friendfeed), или было бы лучше составить отдельную таблицу для сообщений каждого блога?

Большой заранее спасибо за Вашу справку, Peter.

5
задан Peter 18 March 2010 в 00:20
поделиться

2 ответа

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

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

В итоге - начните с традиционного нормализованного дизайна и отклонитесь от этого пути только тогда, когда столкнетесь с проблемами производительности.

3
ответ дан 15 December 2019 в 00:57
поделиться

Хороший вопрос (+1).

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

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

Думаю, ответ зависит от того, насколько далеко вы хотите масштабировать свой проект.

1
ответ дан 15 December 2019 в 00:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: