
Мытко
11.12.2017
21:38:27
Читал на оф. вики вводную часть

Александр
11.12.2017
21:38:59
Выбирать надо список чатов с кол-вом непрочитанных сообщений. Остальное вроде стандартно - список сообщений чата с фильтрами по дате обновления, с пагинацией, инфа о чате, онфа о прочитанности сообщения
Может, есть более комфортная или быстрая схема работы? Подозреваю, что когда-нибудь захотят скрывать сообщения для себя, не из чата
Чаты групповые

Google

Alex
11.12.2017
21:43:31
Зачем чат писать в бд ?

Александр
11.12.2017
21:46:56
Чтобы кудо-то сохранять сообщения)

Nikolai
11.12.2017
21:46:59
Ещё варианты?)

Мытко
11.12.2017
21:47:34
В плейн тексте хранить сообщения и индексы самому делать

Yaroslav
11.12.2017
21:48:27
Чаты групповые
А зачем id в chat_user? Что такое last_read_id, id последнего прочитанного пользователем сообщения в этом чате?
А вообще, какой именно чат моделируется? Например, получается, что все сообщения "ничьи"?

Александр
11.12.2017
21:48:31
Ага, у меня это получится лучше, чем у недалёких разработв бд)
last_read_id - да, id последнего прочитанного пользователем сообщения в этом чате
Ну, обычный чат)
По поводу "ничьи" - сорян, когда накидывал схему для чата, забыл - в messages есть user_id

Мытко
11.12.2017
21:52:36
Я так понимаю, что он очень простой

Александр
11.12.2017
21:53:05
Добавил user_id и изменил связи в схеме с user_message

Yaroslav
11.12.2017
21:54:40

Александр
11.12.2017
21:54:52

Google

Yaroslav
11.12.2017
21:55:27

Мытко
11.12.2017
21:55:41
А есть смысл читать какие-то книги, где более подробно об этом рассказывается?

Александр
11.12.2017
21:56:28
не нарисовал
Поправил) https://drive.google.com/file/d/1Rouq7WyJeWo5c47U0k-RBaaJ0Eagz9Tr/view?usp=sharing

Yaroslav
11.12.2017
21:58:06

Александр
11.12.2017
21:59:13
Это единственное место, где можно указать последнее прочитанное сообщение. Там конкретный пользователь в конкретном чате. А клиенту нужно галочку о прочтении ставить

Мытко
11.12.2017
21:59:53

Yaroslav
11.12.2017
22:00:20
На неё же даже ничего не ссылается, какой вообще смысл в суррогатном ключе в таком случае?

Александр
11.12.2017
22:01:59

Yaroslav
11.12.2017
22:02:43

Александр
11.12.2017
22:04:20
Не думаю, что это как-то ускорит/замедлит/увеличит комфорт работы с базой)

Yaroslav
11.12.2017
22:08:13

Александр
11.12.2017
22:10:39
ок, объясню: orm не умеет из коробки работать с композитными ключами у модели, ей нужен один primary ключ. В этом случае это не модель, а таблица связи, но это уже просто сила привычки)
Ок, убрали id из таблиц связи
Тут как бы куб получается) 3 сущности друг с другом многие-ко-многим)

Yaroslav
11.12.2017
22:16:55

Google

Александр
11.12.2017
22:17:06
в postgres нет графов?)

Yaroslav
11.12.2017
22:18:59

Александр
11.12.2017
22:19:36

Yaroslav
11.12.2017
22:22:50

Александр
11.12.2017
22:23:36
Нет, не нужно, но есть подозрение, что появится функция "Удалить сообщение у себя"

Yaroslav
11.12.2017
22:25:59
Нет, не нужно, но есть подозрение, что появится функция "Удалить сообщение у себя"
Тогда Вам нужно модель уточнить, IMHO. Т.е. для себя определить, какие Вам нужны возможности, какие у Вас ограничения, и прикинуть запросы... Кстати, почему бы не посмотреть на готовые решения для аналогичных задач?
Например, начиная отсюда: https://stackoverflow.com/questions/6541302/thread-messaging-system-database-schema-design

Александр
11.12.2017
22:30:53
Я смотрел, и всё сводится к этим 2-м вариантам, причем доминирует почему-то вариант с user_message, но я не могу понять, почему
Вариант без нее хорошо уменьшает нагрузку, но усложняет получение списка чатов с кол-вом непрочитанных сообщений

Yaroslav
11.12.2017
22:33:30

Александр
11.12.2017
22:34:38
Не думаю, что такое требование вообще резонно, если честно
Спасибо

Yaroslav
11.12.2017
22:37:40

Александр
11.12.2017
22:39:45

Ilia
12.12.2017
04:34:41

Сергей
12.12.2017
05:58:53

Александр
12.12.2017
06:37:16
нет, но популярные фреймворки так и работают - ror/django/laravel, чё там еще забыл)

Ilia
12.12.2017
06:51:26
Все ф топку!

Александр
12.12.2017
07:26:46
Так можно и на самописные фреймворки с багами вернуться)

Google

Alex
12.12.2017
07:29:26
Самописные фреймворки могут быть написаны лучше

Александр
12.12.2017
07:30:08
Нуну, инди-разработчик типа круче тысячных коммьюнити

Alex
12.12.2017
07:30:34
Могут :)

Александр
12.12.2017
07:30:39
И у него есть на это время

Alex
12.12.2017
07:30:53
Но вообще это оффтоп

Александр
12.12.2017
07:32:00
Да, давай закругляться) лучше по чатам че-нибудь подскажите, вдруг можно проще сделать)

Лаврентий
12.12.2017
08:30:22
Подскажите, как сделать выгрузку выборки в формате sql , а не csv?

Maksim
12.12.2017
08:35:58

Лаврентий
12.12.2017
08:40:34
он же таблицы дампит, а мне надо выборку

Alexander
12.12.2017
08:41:58
дамп делает копи. Копи можно и руками сделать.

Anton [Mgn, az09@osm]
12.12.2017
08:42:02
а если вьюшку сдампить?

Alexander
12.12.2017
08:42:07
воспользуйтесь средствами какого-нибудь гуи
там можно экспортировать данные в виде скриптов уже практически везде
умели бы они еще сразу балк инсерт генерировать...

Лаврентий
12.12.2017
08:44:23
для миграции данных в другую субд
через pgadmin 3 не нашел как, там только csv
вариант создания новой таблицы и наполнения им данными из выборки как-то костыльно и некрасиво)

Alexander
12.12.2017
08:48:04
ну Datagrip точно умеет. Кто использует DBeaver, там же тоже есть этот функционал?

Valery
12.12.2017
11:13:08
Люди, подскажите пожалуйста, почему в бд очень много wait_eventов типа buffer_mapping или buffer_io ? Никто не сталкивался? Что значая данные события понятно.

Google

Artem
12.12.2017
11:24:10

Alexander
12.12.2017
11:27:27

Игорь
12.12.2017
11:34:20

Mike Chuguniy
12.12.2017
11:41:42
для миграции данных в другую субд
Тута (али здеся? всё время путаю...) либо искать средства на ресурсах целевой СУБД и прыгать, самоудовлетворяясь и набивая шишки, либо самописные костыли на php, python, perl, java, C/C++, asm...

Valery
12.12.2017
11:48:44

Mikhail
12.12.2017
12:15:24
Всем привет! Есть проблема с работой pgbouncer. По lifetime pgbouncer рвет соединение с postgres, при этом не рвет соединение с клиентом. Как такие проблемы решать? Проблема в том, что pgbouncer сбрасывает состояние соединения, а клиент об этом даже не знает
Как вообще правильно работать клиенту с pgbouncer?

Max
12.12.2017
13:12:47
Привет! Нет соединения с postgre (pgadmin3). В конфах изменений не делал. Как исправить?

Лаврентий
12.12.2017
13:14:39
ошибка-то какая?

Alexander
12.12.2017
13:15:04
Для того, чтобы принимались любые соединения, нужно слушать не просто 127.0.0.1/32, а 0.0.0.0/32

Max
12.12.2017
13:15:48

Alexander
12.12.2017
13:16:32
Можете просто заменить 127.0.0.1/32 на 0.0.0.0/32 и перезагрузить postgresql сервер

Аггей
12.12.2017
13:16:58

nietzschebrod
12.12.2017
13:17:18
0.0.0.0/32 - это што

Max
12.12.2017
13:17:27