|
|
|
Проектирование: прочитано сообщение конкретным пользователем
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, возникла проблема проектирования БД. в БД есть документы, группы и пользователи. пользователь может видеть все документы своей группы. Нужно определить прочитан ли документ конкретным пользователем. У документа есть лог, в который пишется что прочитал его конкретный пользователь. Но кроме этого есть таблица порядка отображения документов, т.е. если кто-то изменил документ, то он должен быть непрочитанным и отображаться вверху списка. Удалять из лога нельзя. количество документов всего в БД 100 тыс. у каждого пользователя примерно по 10 тыс. Джоинить три таблицы очень затратно, соответственно вопрос: есть ли у кого решение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2016, 10:56 |
|
||
|
Проектирование: прочитано сообщение конкретным пользователем
|
|||
|---|---|---|---|
|
#18+
БД postgres, есть возможность использовать memcached ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2016, 10:58 |
|
||
|
Проектирование: прочитано сообщение конкретным пользователем
|
|||
|---|---|---|---|
|
#18+
beekirr, join-ить таблицы не затратно, тем более три. - вообще ни о чем. проблема в другом - логи большие. да и даже не в этом, а в том, что логи нужно удалять. так что делай отдельную таблицу с признаком чтения пользователем каждого документа, так и логи удалять можно будет, и запросы писать легче (не будет лишних записей). если не хочешь сделать отдельную таблицу, то добавление нужного индекса решит проблему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2016, 11:15 |
|
||
|
Проектирование: прочитано сообщение конкретным пользователем
|
|||
|---|---|---|---|
|
#18+
Не совсем понятно -решение чего? Либо Вы получаете информацию о том, прочитан ли документ А пользователем B, из лога, либо храните отдельно некий агрегат (пользователь, документ, статус) и перестраиваете его по обновлении/прочтении каждого документа. Какое решение лучше - зависит от соотношения операций чтения/модификации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2016, 11:25 |
|
||
|
Проектирование: прочитано сообщение конкретным пользователем
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, в бд: 100 тыс документов, 1 млн лога и 300 тыс в ордере, каждый год эти цифры будут умножаться на 2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2016, 11:58 |
|
||
|
Проектирование: прочитано сообщение конкретным пользователем
|
|||
|---|---|---|---|
|
#18+
beekirr, через 20 лет будет 100 млрд документов? Оптимистично :) Сегодняшние цифры, в общем, невелики и не имеют отношения к выбору решения. Кот Матроскин. Какое решение лучше - зависит от соотношения операций чтения/модификации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2016, 13:03 |
|
||
|
Проектирование: прочитано сообщение конкретным пользователем
|
|||
|---|---|---|---|
|
#18+
beekirrКот Матроскин, в бд: 100 тыс документов, 1 млн лога и 300 тыс в ордере, каждый год эти цифры будут умножаться на 2Это смешные объемы. Даже десктоп потянет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2016, 13:48 |
|
||
|
Проектирование: прочитано сообщение конкретным пользователем
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2016, 15:11 |
|
||
|
Проектирование: прочитано сообщение конкретным пользователем
|
|||
|---|---|---|---|
|
#18+
Relict_35, никакое секционирование тут на 200%не нужно- объемы данных не те. от несколько сотен миллионов можно думать про секционирование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2016, 11:42 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=39211000&tid=1540359]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 389ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...