图数据库的数据建模与应用开发
1. 邮件图模型的构建与优化
在构建图数据库时,我们可能会犯一些建模错误。比如,最初我们可能会尝试通过给 EMAILED 关系添加属性来表示邮件的属性,但这只是权宜之计。即使为每个 EMAILED 关系添加属性,我们仍然无法关联 EMAILED 、 CC 和 BCC 关系,无法明确哪些邮件是抄送的,哪些是密送的,以及发给了谁。
这其实是一个简单的建模失误,主要是由于英语使用不严谨,而非图论本身的缺陷。日常语言让我们更关注“emailed”这个动词,而非邮件本身,导致模型缺乏对领域的真正洞察。例如,将“Bob sent an email to Charlie”简化为“Bob emailed Charlie”,在大多数情况下,丢失“email”这个名词并不影响理解,但在取证场景中,这种省略就会带来问题,因为邮件的数量、内容和收件人等细节被合并到 EMAILED 关系中,而没有作为独立节点进行明确建模。
为了修复这个有缺陷的模型,我们需要插入邮件节点来表示业务中实际交换的邮件,并扩展关系名称集以涵盖邮件支持的所有地址字段。之前创建的有损结构如:
CREATE (bob)-[:EMAILED]->(charlie)
现在应创建更详细的结构,例如:
CREATE (email_1:Email {id:'1', content:'Hi Charlie, ... Kind re
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



