Database design 最佳实践-记录事件(常规)和更改(数据库)
需要帮助记录站点上的所有活动以及数据库更改 要求:Database design 最佳实践-记录事件(常规)和更改(数据库),database-design,events,logging,Database Design,Events,Logging,需要帮助记录站点上的所有活动以及数据库更改 要求: [username] login failed @datetime [username] login successful @datetime [username] changed password @datetime, estimated security of password [low/ok/high/perfect] @datetime [username] clicked result [result number] [result
[username] login failed @datetime
[username] login successful @datetime
[username] changed password @datetime, estimated security of password [low/ok/high/perfect] @datetime
[username] clicked result [result number] [result id] after searching for [search string] and got [number of results] @datetime
[username] clicked result [result number] [result id] after searching for [search string] and got [number of results] @datetime
[username] changed profile name from [old name] to [new name] @datetime
[username] verified name with [credit card type] credit card @datetime
datbase table [table name] purged of old entries @datetime via automated process
- 应该在数据库中
- 应可通过启动器(用户名/会话id)、事件(活动类型)和事件参数轻松搜索
[username] login failed @datetime
[username] login successful @datetime
[username] changed password @datetime, estimated security of password [low/ok/high/perfect] @datetime
[username] clicked result [result number] [result id] after searching for [search string] and got [number of results] @datetime
[username] clicked result [result number] [result id] after searching for [search string] and got [number of results] @datetime
[username] changed profile name from [old name] to [new name] @datetime
[username] verified name with [credit card type] credit card @datetime
datbase table [table name] purged of old entries @datetime via automated process
等等
因此,以前有人处理过这个问题吗?您可以分享的任何最佳实践/链接
我见过上面提到的通用解决方案,但不知怎么的,这与我从数据库设计中学到的不一致,但正如你所看到的,需要跟踪的事件(每个用户都能看到这些信息)的数量之多让我头疼,但我更喜欢每个表一个事件的解决方案,而不是通用的解决方案
有什么想法吗?
编辑:另外,是否有某个地方此类(可能)事件的权威列表?
thnx
堆栈溢出表示:您提出的问题似乎是主观的,可能会被关闭。我的回答:可能是主观的,但这与我在设计数据库/编写代码方面遇到的问题直接相关,因此我欢迎任何帮助。此外,我尝试将想法缩小到2个,希望其中一个能占上风,除非已经为这类事情制定了解决方案
示例: 事件:[用户名]在搜索[search string]后单击结果[result number][result id],并获得[number of results]@datetime 这将产生与此类似的数据(不是实际的SQL语法,sue me:): 事件类型:(用户操作,用户点击,“用户点击某物”) 事件:(12345,“用户操作”,“用户单击”,“日期时间”,“用户名]”, “应用程序名称”、“pid”…) 事件详细信息:多行: (12345,“结果编号”,33,NULL,NULL)//或进入事件详细信息,不带NULL? (12345,“结果id”,919292,空,空) (12345,“搜索字符串”,NULL,“如何在DB中记录事件”,NULL)
Stackoverflow说,只是因为你在标题中写了“最佳实践”,这不是对你的问题的分析:)是的,我想,但只是想确保我没有被误解。thnxi很抱歉,我想我有点理解你的想法,我确实喜欢它,只是不确定表0和表1。例如,如果我有一个事件:[用户名]搜索[search string]后点击结果[result number][result id],得到[number of results]@datetime你能更新你的答案吗?我不知道事件类型和事件子类型,特别是什么类型和什么子类型,因此表0什么类型到表1。感谢你提供了一个看起来非常优雅的解决方案。类型可能是USER\u ACTION,子类型可能是USER\u CLICK。但这是R真正依赖于您的问题域,只有您才能真正确定。事件表将获得一个条目(12345,“用户操作”、“用户单击”、“用户名”、“应用程序名称”、“pid”…)和事件详细信息行,如(12345,“结果编号”,33),(12345,“结果id”,919292),等等…-Hopechnox获取此类详细信息!!