C# 如何为模板化日志目的设计数据库?

C# 如何为模板化日志目的设计数据库?,c#,asp.net,sql,logging,C#,Asp.net,Sql,Logging,在我的web应用程序中,我想记录某些用户交互等,比如用户ABC加入了组XYZ,因此我想建立一个登录Mssql数据库的日志机制。我现在正试图找到一个好的数据库设计来实现灵活性 首先,我不想记录像用户ABC加入组XYZ这样的字符串。我想将内容ABC和XYZ从模板中分离出来。所以我正在寻找一个模板化的日志数据库 大概是这样的: 表:用户日志 IDLog int primary key IDUserLogTemplate int foreign key date datetime 表UserLogTe

在我的web应用程序中,我想记录某些用户交互等,比如用户ABC加入了组XYZ,因此我想建立一个登录Mssql数据库的日志机制。我现在正试图找到一个好的数据库设计来实现灵活性

首先,我不想记录像用户ABC加入组XYZ这样的字符串。我想将内容ABC和XYZ从模板中分离出来。所以我正在寻找一个模板化的日志数据库

大概是这样的: 表:用户日志

IDLog int primary key
IDUserLogTemplate int foreign key
date datetime
表UserLogTemplate

IDUserLogTemplate int PK
TemplateString varchar (like 'User {0} joined Group {1}')
IDUserLogType int FK
表UserLogType

IDUserLogType int PK
Name varchar
Description varchar
表UserLogContent

IDUserLogContent int PK
IDLog int FK
PlaceholderPosition int (like '0')
Value varchar (like "ABC")
我认为这种数据库结构会给我足够的灵活性来添加/删除/编辑特定的日志类型,比如“用户ABC做了其他事情”。例如,我可能想向特定的日志条目添加一些信息,以备将来输入。因此,我创建了一个引用相同UserLogType的新UserLogTemplate。这就是我实现向下兼容性的方法


这是一个有效的数据库设计吗?你建议一个更好的设计吗?

我不仅仅是想典当我的一个应用程序,我还开发了一个应用程序日志记录工具,允许你存储自定义元信息和单个日志条目。它使用CouchDB运行,CouchDB是一种面向文档的非关系型数据库,这就是SQL Server,它使存储和检索像这样的松散结构的信息变得更加容易


如果您感兴趣,请在上查看和/或给我发电子邮件。我很乐意帮助您开始使用它,也许它更适合这种非结构化数据。

我不仅仅是想典当我的一个应用程序,我还开发了一个应用程序日志记录工具,允许您存储自定义元信息以及单个日志条目。它使用CouchDB运行,CouchDB是一种面向文档的非关系型数据库,这就是SQL Server,它使存储和检索像这样的松散结构的信息变得更加容易


如果您感兴趣,请在上查看和/或给我发电子邮件。我很乐意帮助您开始使用它,也许它更适合这种非结构化数据。

我决定使用自己发布的db设计。

我决定使用自己发布的db设计