|
|
|
БД действий пользователей
|
|||
|---|---|---|---|
|
#18+
Привет! Я сделал схему БД для логирования действий пользователей, где пользователи могут искать: По всем типам эвентов, фильтруя по дате или имени пользователя По одному типу эвенту, с теми же фильтрами по дате и пользователю + по параметрам этого эвента Вот схема Вот так выглядит поиск по всем эвентам Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. А вот так по эвенту одного типа Код: plsql 1. 2. 3. 4. 5. 6. 7. Содержимое таблицы event_def : Код: sql 1. 2. 3. 4. 5. 6. 7. Но мне не нравится, что когда у меня будет около 100 разных эвентов (сейчас у меня планируется около 50, но я их не реализовал пока), планировщик будет работать чуть больше одной секунды Код: sql 1. Думал может быть объединить эвенты по типам, вот так Это хоть и уменьшит количество эвентов\таблиц вдвое, но все равно меня не покидает чувство, что я делаю что-то не так, может кто-нибудь подскажет? Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2016, 11:32 |
|
||
|
БД действий пользователей
|
|||
|---|---|---|---|
|
#18+
no_username, а есть ли смысл писать своё решение, если можно взять готовое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2016, 13:11 |
|
||
|
БД действий пользователей
|
|||
|---|---|---|---|
|
#18+
skyANAno_username, а есть ли смысл писать своё решение, если можно взять готовое? Как я понимаю, речь об эластике? Сейчас у меня все хранится в нем и оно работает отвратительно. Или что-то другое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2016, 13:31 |
|
||
|
БД действий пользователей
|
|||
|---|---|---|---|
|
#18+
Не нашел как отредактировать сообщение, знакомые предложил хранить параметры эвентов в jsonb (база данных постгрес, он хорошо с ними умеет работать) logs.params будет выглядеть примерно так Код: javascript 1. 2. 3. 4. event_def.template для этого эвента Код: sql 1. И в коде уже все это разруливать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2016, 13:41 |
|
||
|
БД действий пользователей
|
|||
|---|---|---|---|
|
#18+
правильно ли я понимаю, что таблиц event_действия_пользователя будет столько сколько типов эвентов? И это количество имеет свойство расти. Тогда твоя проблема будет - что мне надо переделать когда добавится новый тип событий. Решений несколько: пан LSV будет уговаривать на EAV (таблицы event_attribute, event_attribute_value) плюсы:при добавлении нового типа событий не придется применять DDL скрипт, а только DML. минусы:самая медленная схема Про JSON или XML я вижу вы сами догадались Плюсы: просто минусы: нарушает первую нормальную форму Ваша схема Плюсы: запрос по одному типу эвента будет очень эффективным минусы: его надо будет или жестко кодировать (указывать с какой таблицей соединять) или генерировать на клиенте. Добавление нового типа эвента требует DDL no_username Но мне не нравится, что когда у меня будет около 100 разных эвентов (сейчас у меня планируется около 50, но я их не реализовал пока), планировщик будет работать чуть больше одной секунды На этапе разработки абсолютные величины времени отклика очень ненадежный показатель. Прогрей кэш, добавь побольше ресурсов в свой виртуальный сервер и получи совершенно любые значения. Что еще мне не нравится смешение запроса и форматирования Я бы сделал вьюху в которой бы добавил все соединения, а форматирование делал в другом запросе к этой вьюхе Использование первичных ключей. Заведите себе другое поле (логический код вместо физического id) и используйте его для форматирования. Оставьте первичные ключи только для реализации ссылочной целостности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2016, 18:14 |
|
||
|
БД действий пользователей
|
|||
|---|---|---|---|
|
#18+
no_usernameskyANAno_username, а есть ли смысл писать своё решение, если можно взять готовое? Как я понимаю, речь об эластике? Сейчас у меня все хранится в нем и оно работает отвратительно. Или что-то другое? Эластик, или MongoDB, или вон Вам даже Postgres насоветовали. Современные логгеры куда только не пишут. А всякие кибаны с графанами откуда только не читают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2016, 09:14 |
|
||
|
БД действий пользователей
|
|||
|---|---|---|---|
|
#18+
К примеру Serilog следующие хранилища поддерживает: Provided Sinks . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2016, 09:21 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=13&tid=1540262]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 253ms |
| total: | 398ms |

| 0 / 0 |

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