mysql日志系统数据库结构:如何实现最佳的优化和规范化?

jaxagkaj  于 2021-06-18  发布在  Mysql
关注(0)|答案(0)|浏览(236)

我正在使用mysql和sqlite创建一个日志系统,目标是最大限度地优化。这导致了一个表结构的畸形,它由于其重复的组而打破了第一个范式。我的意思是:

此系统中的日志格式类似于:

{1} used tool {2} on a {3} created by {4}

每个 {X} 替换为相关信息,以便在客户端上创建信息日志。这允许将日志翻译成不同的语言。我最初的想法是打破第一个范式,使用重复组来存储这些替换。
下面是一个处理和替换日志的示例,它将显示给客户端:

Jeff used tool remover on an entity created by Steven

替换占位符的信息存储在 replacement_X_... 上面屏幕截图中显示的列。
优点:据我所知,这应该比使用单独的表来存储需要连接甚至多个选择的替换要快。
优点:这种结构对搜索功能很友好
优点:这种结构允许快速插入,有很多!
缺点:在我上面的例子中,替换的数量最多是6个,而不是一个可变的数量
缺点:打破了第一个标准形式,使用重复组,通常非常难看,很难进行和处理查询
在这种情况下,打破第一范式是否合理?或者有没有更好的方法来实现这一点,既不会影响性能,也适合mysql和sqlite?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题