我正在我的应用程序中实施审计跟踪。我遵循了这个,这创建了只需要审计的表的历史表。
我有一个下表来存储患者信息。
TenantId代表每个租户数据,因为它是一个多租户应用程序
Person
和Patient
表
人
Id、TenantId、FirstName、LastName、DOB、Mobile、Email、AddedBy、UpdatedBy、IsDeleted
病人
Id、PatientIDentifier、IsOP、CanSendSMS、AddedBy、UpdatedBy、IsDeleted
还有另一张桌子
预约
Id、PatientId、AppointmentDate、DoctorId、价格、AddedBy、UpdatedBy
审计历史表结构
人物历史
AuditId、Id、FirstName、LastName、DOB、AddedBy、UpdatedBy、AuditUserId、AuditDate、Action
这里Action
代表A(ADD)/U(update)/D(delete)
已创建相同的结构Patient, Appointment
现在,每当添加/删除/更新发生时,我都会将触发器插入到历史记录表中。
现在我得到了审计历史表中可用的数据。
我必须针对两个要求编写查询。
获取特定患者的所有记录。我需要使用
PatientId
. 我们如何编写 SQL 来从给定 id 的同一张表中获取更多记录?UNION or JOIN
?我需要从中获取所有记录
all the HistoryTable for the supplied AuditUser Id
。
我该如何为此编写查询?