Neo4j 图形数据库中的推荐建模
我是图形数据库领域的新手,不知道以下产品买卖关系经典场景的推荐建模选项:Neo4j 图形数据库中的推荐建模,neo4j,graph-databases,Neo4j,Graph Databases,我是图形数据库领域的新手,不知道以下产品买卖关系经典场景的推荐建模选项: 史蒂夫从亚马逊购买了iphone6plus (:Person {name: "Steve"})-[:BOUGHT]->(p:Purchase {id:987, total: 655.99, tax: 56.00}) (p)-[:PRODUCT {price: 599.99}]->(iPhone:Product {name: "iPhone 6 Plus"}) (p)-[:SELLER]->(:Compa
- 史蒂夫从亚马逊购买了iphone6plus
(:Person {name: "Steve"})-[:BOUGHT]->(p:Purchase {id:987, total: 655.99, tax: 56.00}) (p)-[:PRODUCT {price: 599.99}]->(iPhone:Product {name: "iPhone 6 Plus"}) (p)-[:SELLER]->(:Company {name: "Amazon"})
创建(Steve:Person{name:“Steve”})-[b1:Buyed]->(iPhone:Product{name:“iPhone 6 Plus”})(iPhone)作为一个简单的选项,您可以添加一个与销售
相关的公司
购买节点和一个或多个从该公司购买的
下面说明了数据模型,而不是任何Cypher子句产品
- 史蒂夫从亚马逊购买了iphone6plus
(:Person {name: "Steve"})-[:BOUGHT]->(p:Purchase {id:987, total: 655.99, tax: 56.00}) (p)-[:PRODUCT {price: 599.99}]->(iPhone:Product {name: "iPhone 6 Plus"}) (p)-[:SELLER]->(:Company {name: "Amazon"})
- 迈克尔随后也从eBay购买了iPhone6Plus
(:Person {name: "Michael"})-[:BOUGHT]->(p:Purchase {id:456, total: 599.99, tax: 0.00}}) (p)-[:PRODUCT {price: 599.99}]->(iPhone:Product {name: "iPhone 6 Plus"}) (p)-[:SELLER]->(:Company {name: "eBay"})
进行购买的实际查询可能如下所示:Steve
MERGE (person:Person {name: "Steve"}) MERGE (prod:Product {name: "iPhone 6 Plus"}) MERGE (co:Company {name: "Amazon"}) CREATE (person)-[:BOUGHT]->(p:Purchase {id:987, total: 655.99, tax: 56.00}), (p)-[:PRODUCT {price: 599.99}]->(prod), (p)-[:SELLER]->(co);
这种模式的瓶颈在于,它不能表明亚马逊一般销售iPhone产品,除非它是由Steven购买的。这不是问题,因为亚马逊(和eBay)仍然可以与同一款iPhone产品保持销售关系。但是我的答案也可能不代表你想要使用的实际模型,因为你必须考虑所有的用例。 - 史蒂夫从亚马逊购买了iphone6plus