在图数据库中将日期表示为节点/顶点有哪些潜在的缺陷?

时间:2014-12-07 04:56:57

标签: database-performance graph-databases titan

我正在构建一个涉及许多关系操作的Web应用程序。例如,我有一个'事件'在特定的date期间节点(代表一个事件,比如一个竞赛),我想在那一天通知当地及周围的所有人。

在这种情况下,将date作为单独的节点并将其与event节点和person节点相链接是有意义的。这是一个很好的做法,它比将日期存储为属性(我猜有一些性能问题)更好吗?另外,我可以尝试将所有节点的所有日期表示为单独的daymonthyear节点,而不是将它们定义为属性吗?

1 个答案:

答案 0 :(得分:1)

如果您将“日期”存储为事件的属性,则必须使用索引来查找它们。一般来说,如果选择性较低,则索引最佳,因此如果特定日期有大量event个顶点,则将“日期”建模为属性可能不太好。我想你还需要考虑使用外部索引后端(例如elasticsearch)来帮助处理范围样式查询。

如果每个日期有大量事件,则将日期建模为daymonthyear等顶点是一种常见模式。如果采用这种方法,请考虑编写一些slick DSL函数/步骤,以帮助轻松导航和使用该结构。