App работает на: ruby 2.0
, rails 4
и postgresql
Несколько записей базы данных в таблице и запросы к базе данных? Что лучше для производительности?
1.The несколько таблиц истории - Как это работает сейчас:
project
имеет много users
как members
.
Также project
имеет много posts
, когда post
создается notification
создается для каждого project user
.
Скажем, если Проект A имеет 100 пользователей, мы будем иметь 100 уведомлений в базе данных, это будет загрузить базу данных с большим количеством дублей.
Но пользователь может удалить свое собственное уведомление, просмотреть его, мы можем обновить его уведомление с помощью конкретных данных. И мы будем использовать команду rake, чтобы удалить уведомления, которые старше, чем определенный интервал времени.
2. Множественные запросы БД - То, что мы хотим сделать:
Существует идея создания только один уведомления для деятельности и использовать многие ко многим отношений с таблицей называется notifications_users
где мы будем хранить информацию об уведомлении, если он был прочитан текущим пользователем, если этот пользователь удалил это уведомление со своей вкладки уведомлений и т. д.
Недостатком этого я считаю, что это будет несколько запросов db, когда нам нужно найти что-то abou t уведомление и пользователь, мы должны будем найти таблицу notification_users
, чтобы получить необходимую информацию.
Кроме того, создавая отношения таким образом, будет сложнее очистить базу данных от старых уведомлений, поскольку мы не будем знать, было ли это уведомление прочитано или нет каким-то пользователем.
спасибо.
Для 1-го утверждения: при добавлении сообщения будет создано уведомление, поэтому между сообщениями, которые могут присоединиться многие пользователи к проекту, и если в начале сообщения было создано 50 уведомлений, так как было 50 членов, когда создается вторая запись может быть 200 членов, и 200 уведомлений будут созданы или могут быть меньше, если будут пользователи, которые покинут проект. – rmagnum2002
для утверждения 2: Если 100 участников проекта, когда создается почта, будет создано 100 уведомлений, и да, в таблице будет 100 строк, так как это первый пост, созданный после добавления нового сообщения, ряды будут расти в зависимости от количества членов этого проекта. – rmagnum2002