如何在ER图中实现IF条件?银行告警系统ER建模咨询
告警系统ER图设计方案
1. 定义Alert实体属性
Alert实体需记录告警核心信息,建议包含以下属性:
alert_id:主键,唯一标识每条告警alert_timestamp:告警生成时间戳alert_type:告警类型(例如:"黑名单交易对手匹配")status:告警处理状态(例如:"待审核"、"已处理"、"误报")remark:备注信息(例如:审核人员处理意见)
2. 建立Alert与其他实体/关系的关联
核心思路
将原transact_with二元关系转化为独立的Transaction表(ER图转关系模型的常规操作),让Alert分别关联Transaction和watch_list,彻底避免watch_list与Customer/Account在常规交易流程中产生直接关联。
具体关联逻辑
Alert↔Transaction:通过transaction_id外键关联。每条告警对应一笔触发规则的交易,因此Alert表添加transaction_id字段,关联到Transaction表主键。Alert↔watch_list:通过watch_list_id外键关联。每条告警对应匹配到的某条黑名单条目,因此Alert表添加watch_list_id字段,关联到watch_list表主键。
3. 对应关系模型表结构(补充说明)
为清晰展示关联关系,给出各表核心字段:
Transaction表(对应原transact_with关系):transaction_id(主键)、customer_id(外键→Customer)、account_id(外键→Account)、counterpart_name、counterpart_country、transaction_amount、transaction_timewatch_list表:watch_list_id(主键)、target_name(待匹配交易对手名称)、list_type(名单类型,例如"制裁名单")、create_timeAlert表:alert_id(主键)、transaction_id(外键→Transaction)、watch_list_id(外键→watch_list)、alert_timestamp、status、remark
4. 业务逻辑说明
- 常规交易流程中,
Customer发起交易生成Transaction记录,此时Transaction与watch_list无任何关联,完全不影响原有业务流程。 - 当系统检测到
Transaction中的counterpart_name与watch_list中的target_name匹配时,自动生成一条Alert记录,将该交易与对应黑名单条目关联,实现告警触发。
内容的提问来源于stack exchange,提问作者Apple Fanboy
相关产品推荐
相关产品推荐

