我知道SQL,但我对它并不十分熟悉。我有一个系统,我想在索引数据库中记录用户登录,注销和其他安全相关的事件,以便能够对它进行手动查询,我认为一些基于SQL的RDBMS应该是最适合的工作
但是,我想要存储的记录具有相似但不完全相同的数据。所有记录都会存储时间戳和用户名,但其他数据项会有所不同。例如:
如何在关系数据库中建模这样的东西?我可以想象至少有三种可能性:
NULL
,以用于不使用它们的记录答案 0 :(得分:1)
您提到的解决方案出现在Martin Fowler的书Patterns of Enterprise Application Architecture中。您可能希望阅读该书以了解他对使用这些模式的看法。
为每种数据项使用不同的表
为所有不同的数据项添加列,并将它们保留为NULL,以便不使用它们的记录
使用一个包含公共数据项的中央表,以及存储其余数据的辅助表,链接到中央表中的事件ID
Fowler还为此问题提供了第四种解决方案: