图数据库建模与应用开发全解析
1. 邮件图模型的初始问题与改进
在构建图模型来表示邮件交互时,最初我们可能会犯一些简单的建模错误。比如,当尝试用 EMAILED 关系来表示邮件发送时,即使为其添加属性,也无法有效关联 EMAILED 、 CC 和 BCC 关系,难以区分哪些邮件是抄送,哪些是密送,以及发送对象是谁。这主要是因为日常语言使用习惯,我们更关注“emailed”这个动词,而忽略了邮件本身这个实体,导致模型缺乏对领域的深入洞察。
为了解决这个问题,我们需要插入邮件节点来代表业务中实际交换的邮件,并扩展关系名称集合,以涵盖邮件支持的所有地址字段。以下是改进前后的代码对比:
- 改进前 :
CREATE (bob)-[:EMAILED]->(charlie)
- 改进后 :
CREATE (email_1:Email {id:'1', content:'Hi Charlie, ... Kind regards, Bob'}),
(bob)-[:SENT]->(email_1),
(email_1)-[:TO]->(charlie),
(email_1)-[:CC]->(davina),
(email_1)-[:CC]->(alice),
(email_1)-[:BCC
超级会员免费看
订阅专栏 解锁全文
3554

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



