在產品的使用過程當中,常常要針對某個訂單表、申請表等進行操做日誌記錄,但願有一個統一的服務能夠一次性解決這個痛點數據庫
服務結構圖
app
註解 | 介紹 | 參數 |
---|---|---|
@OperationLog | 在DAO(MAPPER)層的方法上添加此註解,表示會發送日誌請求 | tableName-表名;type-操做類型;remark-備註;primaryTable-是否主表,若是有@Transactional註解 須要標記此字段 |
@OperationLogAlias | 在參數實體類的字段裏,添加此字段,表示顯示的名字,不以數據庫的備註,而是以此 | key-字典表的key;type-別名類型;dataBaseName-庫名;tableName-表名;fieldName-字段名;fieldId-表的id;attributeAlias-顯示名字的別名 |
@OperationLogIgnore | 在參數實體類的字段裏,添加此字段,表示忽略此字段,不會保存到日誌服務 |
操做表operation_{{databaseName}},例:保存car庫的車輛申請信息apply,databaseName:car數據庫設計
字段 | 類型 | 備註 |
---|---|---|
database_name | char | 目標的數據庫名,如:car |
table_name | char | 表名,如:apply表 |
object_id | char | apply表的主鍵id |
group_id | char | 分組id,apply有擴展信息也要保存,那麼在同一組,通常取apply表的主鍵id |
operator | char | 操做人姓名 |
operation_type | char | 操做類型名稱,好比,新增 保存 |
operation_alias | char | 操做的別名,對於調皮的產品,老是有奇怪的想法,好比:某某人,左腳一跺,一條訂單隱隱浮現到訂單榜中 |
屬性表attribution_{{databaseName}}設計
字段 | 類型 | 備註 |
---|---|---|
operation_id | char | 操做表id |
attribute_alias | char | 屬性別名 |
old_value | char | 舊值 |
new_value | char | 新值 |
remark | char | 備註:將{{attribute_alias}}由{{old_value}}改爲{{new_value}},寫在觸發器插入的時候 |