SHARE
TWEET

Untitled

a guest Apr 25th, 2019 90 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. >>1388212
  2.  
  3. > В случае шифрования, если мы для каждого пользователя делаем разный шифротекст (шифруем сообщение разными ключами), то придется делать несколько копий.
  4. Это не так, в PGP, при шифровании несколькими ключами делается один общий шифротекст.
  5.  
  6. >>1388216
  7. >> Можно вместо создания бесконечного количества ссылок создать поле с типом ARRAY и помещать в него все ссылки (UUID) на необходимые данные.
  8. >
  9. >Можно, но это будет денормализация. Допустимо, но лучше сначала спроектировать нормализованную схему, а только потом денормализовать. И что там с внешними ключами?
  10. Нормализованная схема это то что я предлагал с "ссылками", и вы предлагали подобную:
  11.  
  12. >>1380677
  13. >>Если ты хочешь делать для каждого пользователя свою копию сообщения, то не проще ли просто сделать таблицу "диалог", и таблицу "сообщения", где в сообщении стоит ссылка на диалог и ссылка на получателя, кому оно предназначено? То есть, так:
  14. >> ...
  15. >>Кстати, в больших чатах невыгодно будет делать для каждого свою копию сообщения. Выгоднее делать всего одну копию для всех.
  16. >>- id, объединяющий копии одного сообщения
  17. >Это получается что объединяющее копия одного сообщения это отдельная сущность/таблица? Я не понимаю тогда, это получается тоже самое что и я предложил, только колонки в разных таблицах. Ну и контент сообщения в моём предложении находиться только оригинальном, а не дублируется.
  18.  
  19. Увы, она вызывает не решаемую проблему, когда нужно проверить существую ли приватная конференция между двумя пользователями, т.к. нужно проверить что существует ли приватная Конференция между двумя пользователями (получателями).  А в решении с массивами, это делается легко и просто. Я писал об этом пост >>1387125 >>1388324
  20.  
  21. >// Проверить существует ли приватный диалог,
  22. >// не смотря на то что один из пользователей когда-то покинул диалог
  23. >SELECT ∗ FROM Dialog WHERE private = true AND (uuid_of_alice = ANY(participants) [b]AND*[/b] uuid_of_bob = ANY(participants));
  24.  
  25. >И что там с внешними ключами?
  26. PostgreSQL пока не реализовал возможность иметь массив внешних ключей https://commitfest.postgresql.org/19/1252/
  27.  
  28.  
  29. >> Participant:
  30. >> -messages UUID[] //массив из uuid сообщений
  31. >
  32. >Это плохо масштабируется, так как у пользователя могут быть тысячи сообщений. И мы не можем быстренько выбрать часть из них.
  33. Почему? SELECT ∗ FROM participant JOIN messages ON (message.uuid = ANY(participant.messages)) WHERE participant.uuid = ... AND message.date = NOW() - INTERVAL '1 DAY';
  34.  
  35.  
  36. Ещё один вопросик, про доктрину который я нечаянно запостил в утонувшний тред: https://pastebin.com/raw/ReJ9xD8b
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top