Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование: прочитано сообщение конкретным пользователем / 10 сообщений из 10, страница 1 из 1
08.04.2016, 10:56
    #39210831
beekirr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование: прочитано сообщение конкретным пользователем
Здравствуйте, возникла проблема проектирования БД. в БД есть документы, группы и пользователи. пользователь может видеть все документы своей группы. Нужно определить прочитан ли документ конкретным пользователем. У документа есть лог, в который пишется что прочитал его конкретный пользователь. Но кроме этого есть таблица порядка отображения документов, т.е. если кто-то изменил документ, то он должен быть непрочитанным и отображаться вверху списка. Удалять из лога нельзя. количество документов всего в БД 100 тыс. у каждого пользователя примерно по 10 тыс. Джоинить три таблицы очень затратно, соответственно вопрос: есть ли у кого решение?
...
Рейтинг: 0 / 0
08.04.2016, 10:58
    #39210833
beekirr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование: прочитано сообщение конкретным пользователем
БД postgres, есть возможность использовать memcached
...
Рейтинг: 0 / 0
08.04.2016, 11:15
    #39210860
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование: прочитано сообщение конкретным пользователем
beekirr,
join-ить таблицы не затратно, тем более три. - вообще ни о чем.

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

если не хочешь сделать отдельную таблицу, то добавление нужного индекса решит проблему.
...
Рейтинг: 0 / 0
08.04.2016, 11:25
    #39210877
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование: прочитано сообщение конкретным пользователем
Не совсем понятно -решение чего?
Либо Вы получаете информацию о том, прочитан ли документ А пользователем B, из лога,
либо храните отдельно некий агрегат (пользователь, документ, статус) и перестраиваете его по обновлении/прочтении каждого документа. Какое решение лучше - зависит от соотношения операций чтения/модификации.
...
Рейтинг: 0 / 0
08.04.2016, 11:58
    #39210927
beekirr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование: прочитано сообщение конкретным пользователем
Кот Матроскин,

в бд: 100 тыс документов, 1 млн лога и 300 тыс в ордере, каждый год эти цифры будут умножаться на 2
...
Рейтинг: 0 / 0
08.04.2016, 13:03
    #39211000
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование: прочитано сообщение конкретным пользователем
beekirr,
через 20 лет будет 100 млрд документов? Оптимистично :)

Сегодняшние цифры, в общем, невелики и не имеют отношения к выбору решения.

Кот Матроскин. Какое решение лучше - зависит от соотношения операций чтения/модификации.
...
Рейтинг: 0 / 0
08.04.2016, 13:48
    #39211050
Проектирование: прочитано сообщение конкретным пользователем
beekirrКот Матроскин,

в бд: 100 тыс документов, 1 млн лога и 300 тыс в ордере, каждый год эти цифры будут умножаться на 2Это смешные объемы. Даже десктоп потянет.
...
Рейтинг: 0 / 0
11.04.2016, 15:11
    #39212664
Relict_35
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование: прочитано сообщение конкретным пользователем
...
Рейтинг: 0 / 0
14.04.2016, 11:42
    #39215434
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование: прочитано сообщение конкретным пользователем
Relict_35,
никакое секционирование тут на 200%не нужно- объемы данных не те. от несколько сотен миллионов можно думать про секционирование.
...
Рейтинг: 0 / 0
14.04.2016, 13:46
    #39215619
Relict_35
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование: прочитано сообщение конкретным пользователем
а я не говорил, что нужно..)
просто указал, что есть возможность, а решение, что делать топикстартер пусть сам принимает.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование: прочитано сообщение конкретным пользователем / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]