我正在构建一个涉及许多关系操作的Web应用程序。例如,我有一个'事件'在特定的date
期间节点(代表一个事件,比如一个竞赛),我想在那一天通知当地及周围的所有人。
在这种情况下,将date
作为单独的节点并将其与event
节点和person
节点相链接是有意义的。这是一个很好的做法,它比将日期存储为属性(我猜有一些性能问题)更好吗?另外,我可以尝试将所有节点的所有日期表示为单独的day
,month
和year
节点,而不是将它们定义为属性吗?
答案 0 :(得分:1)
如果您将“日期”存储为事件的属性,则必须使用索引来查找它们。一般来说,如果选择性较低,则索引最佳,因此如果特定日期有大量event
个顶点,则将“日期”建模为属性可能不太好。我想你还需要考虑使用外部索引后端(例如elasticsearch)来帮助处理范围样式查询。
如果每个日期有大量事件,则将日期建模为day
,month
,year
等顶点是一种常见模式。如果采用这种方法,请考虑编写一些slick DSL函数/步骤,以帮助轻松导航和使用该结构。