0

给定一个电影数据库,是否可以根据某些演员的存在及其各自存在的电影分钟百分比来加权每个节点,只返回高于指定阈值的节点?请提供一个示例(一般)查询。

埃斯:

Threshold: 600 (entered dynamically, not present in DB)

Actor: Good Guy
Val: +12 (entered dynamically, not present in DB)

Actor: Bad Guy
Val: -2 (entered dynamically, not present in DB)

Movie: Nice Movie
Length: 120min
Good Guy presence: 70min
Bad Guy presence: 10min

Val: 120/70*100*(+12) + 120/10*100*(-2)
If Val > 600 then return the node

另外,Neo4j 是适合这种操作的数据库,还是 Mysql 更适合这种用途?

4

2 回答 2

1

对于这类事情,Neo 是一个不错的选择。查看他们构建的 cineasts 示例图:http: //www.neo4j.org/develop/example_data
http://static.springsource.org/spring-data/neo4j/docs/dev/reference/pdf/spring-data-neo4j -tutorial.pdf

您可能希望将权重作为演员和电影之间关系的属性,而不是节点。

于 2013-03-22T18:55:28.667 回答
1

这更像是一个设计问题,而不是您选择的数据库之一,但是是的,neo4j 将是一个很好的候选者,因为它是一个属性图,您可以将诸如权重之类的东西存储为节点或关系的属性。

话虽如此,您可能希望将权重放在关系而不是节点上,这样您就可以轻松搜索演员/女演员和电影,作为一种聚合。

于 2013-03-22T23:03:44.427 回答