Как разделить данные PostgreSQL с помощью Django для приложения чата?

#python #django #postgresql #django-models #django-rest-framework

#python #django #postgresql #django-модели #django-rest-framework

Вопрос:

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

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

Предполагая, что у меня есть внешний ключ для определения отправителя сообщения и внешний ключ к комнате (комнате чата), к которой принадлежит это сообщение.

 query1 = Message.objects.filter(created_at__gt=timestamp)
query2 = Message.objects.filter(id__lte=message_id).update(is_seen=True)
 

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

Заранее спасибо!!!

Комментарии:

1. Вы уверены, что это то, что вы хотите делать в Django?

2. Я думаю, что люди в Disqus и Instagram сделали это. Итак, я думаю, если это не так уж сложно? Что вы предлагаете делать?

3. Использовать сегментирование postgres? pgdash.io/blog/postgres-11-sharding.html

4. @DroidX86 Будет ли это интегрироваться с Django?

5. Это функция postgres. Я не понимаю, почему этого не произойдет