возможность удалять сообщения в групповом чате ТОЛЬКО ДЛЯ СЕБЯ
вижу два варианта как это реализовать
1) храним в group_chat_member array айдишников сообщений которые юзер удалил у себя(при получении списка сообщений придется джоинить таблицу messages с таблицей group_chat_member)
2) храним в каждом сообщении array айдишников юзеров которые удалили у себя это сообщение(при получении списка сообщений придется проверять каждое сообщение)
представим что максимальное количество участников группы 5000 человек и неограниченное количество сообщений
тип колонки message_id - bigint
тип колонки user_id - bigint
как думаете какой варик разумнее заюзать?
я здесь написал что храним в массиве только id удаленных сообщений, я не всего чата
1) Не использовать array без веской причины. Это не 1НФ, у вас должно быть прилично опыта и чёткое (с числами) описание проблем, чтобы такое городить. 2) Использовать, конечно, таблицу многие-ко-многим (пользователи-сообщения) в классическом виде.
1нф далеко не везде используется где важна скорость выполнения запроса
Причина - важна скорость
У вас пока что нет способов это определить (нехватит опыта). Если бы хватало — вы бы задавали другие вопросы, и, скорее всего, знали как это посчитать численно. В большынстве случаев использование массивов замедляет работу системы. В частности, в вашэм в постгрессе — это сильно замедлит.
Обсуждают сегодня