Наблюдение за поведением в социальных сетях: войти или заполнить базы данных? - PullRequest
0 голосов
/ 06 июня 2010

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

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

Ответы [ 3 ]

4 голосов
/ 06 июня 2010

Помните, что Facebook, например, не обновляет информацию пользователей как таковую , они просто вставляют вашу новую информацию и используют самую последнюю, сохраняя старую.Если вы планируете использовать этот подход, НАСТОЯТЕЛЬНО рекомендуется, если не обязательно, использовать NoSQL DB, такую ​​как Cassandra, вам потребуется скорость, а не целостность.Обновление = потеря информации = потеря денег.

0 голосов
/ 06 июня 2010

Вы делаете искусственное различие между «ведением журнала» и «базой данных».

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

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

0 голосов
/ 06 июня 2010

Очевидно, это зависит от того, что вы хотите с ним делать (и что вы подразумеваете под «ведением журнала»).

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

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

...