我正在设计一个模式来支持用户活动的日志记录,用户必须能够搜索:
我创建了这个架构:
并设计查询以进行搜索:
在所有事件中:
SELECT extract(epoch from log_time) * 1000,
u.username,
CASE WHEN l.event_type IN (0, 2) THEN e.template
WHEN l.event_type = 1 THEN format(e.template, ecs.field)
WHEN l.event_type = 3 THEN format(e.template, ess.field)
WHEN l.event_type = 4 THEN format(e.template, ect.ip, ect.port)
END
FROM logs l
JOIN users u ON u.id = l.user_id
JOIN event_def e ON e.id = l.event_type
LEFT JOIN event_client_search ecs ON ecs.log_id = l.id
LEFT JOIN event_switch_search ess ON ess.log_id = l.id
LEFT JOIN event_cable_test …Run Code Online (Sandbox Code Playgroud)