Entity framework core 用于记录跟踪的数据库设计
背景:我正在编写一个应用程序,并使用efcore设计数据库。有一些特定的表存储用户操作,我需要跟踪谁创建了记录、上次修改了记录和删除了记录(软删除) 我有一个用户表,其中有一个int作为主键,每个字段(CreatedBy、LastModifiedBy、DeletedBy)都有一个指向用户行的int 我有一个完整的审计设置,其中整行的旧/新内容都存储在save上,这很好。但这个问题是关于通过跟踪创建/修改/删除的更直接的内容 帮助台通常每天使用这些字段来帮助用户快速确定发生了什么,但应用程序本身中有很多地方最终会利用这些字段(从应用程序的角度来看,moreso创建/修改了这些字段)Entity framework core 用于记录跟踪的数据库设计,entity-framework-core,asp.net-core-2.0,Entity Framework Core,Asp.net Core 2.0,背景:我正在编写一个应用程序,并使用efcore设计数据库。有一些特定的表存储用户操作,我需要跟踪谁创建了记录、上次修改了记录和删除了记录(软删除) 我有一个用户表,其中有一个int作为主键,每个字段(CreatedBy、LastModifiedBy、DeletedBy)都有一个指向用户行的int 我有一个完整的审计设置,其中整行的旧/新内容都存储在save上,这很好。但这个问题是关于通过跟踪创建/修改/删除的更直接的内容 帮助台通常每天使用这些字段来帮助用户快速确定发生了什么,但应用程序本身中
问题:我打算在表和用户表之间创建pk/fk关系。然而,它让我思考是否有更好的策略,然后将这3个字段和关系添加到未来的每个表中。可能是存储表名及其主键的单个表,以及与用户表有关系的已创建/修改/删除列,以便只有1个表与用户表有这些主键/fk关系。我只是觉得必须有更好的方法/更有效的方法来处理这件事。有更好的方法来处理这个问题吗?不要按照你的想法去做,坚持你原来的设计-保留所有审核字段,因为它们与表本身的每个表都相关。添加一个存储来自其他表的审核字段的表只会创建一个设计噩梦 现在,一个更大的问题是如何跟踪审计事务。我喜欢的设计如下:
- CreateBy。添加默认绑定子字符串(SUSER_NAME(),1,50)
- 创造。添加默认绑定GETDATE()
- 更新比
- 更新
注:我没有否决你的问题。我认为这是一个非常具体的设计问题,所以我不认为人们会这么快否决,但唉,事实就是这样。我觉得它足够具体,而且你已经尽职尽责了。所以我回答。