title: Trouble with correctly modeling data in Neo4j / Cypher
body: <p>I am a beginner with Neo4j/Cypher and I'm having trouble modeling my data correctly.</p>
  <p>The Data has following relationship:</p>
  <pre><code>MANUFACTURER_A (unique) -&gt; PRODUCT_A (unique just withing MANUFACTURER_A) -&gt; CUSTOMER_A (globally unique)
  MANUFACTURER_A (unique) -&gt; PRODUCT_A (unique just withing MANUFACTURER_A) -&gt; CUSTOMER_B (globally unique) 
  MANUFACTURER_B (unique) -&gt; PRODUCT_A (unique just withing MANUFACTURER_B) -&gt; CUSTOMER_A (globally unique)
  </code></pre>
  <p>I am not able to make <code>Product_A</code> unique within a <code>Manufacturer</code>. I always get one line from <code>Manufacturer_A</code> to <code>Product_A</code> and another one from <code>Manufacturer_B</code> but I actually want two <code>Product_A</code> nodes (one from each <code>Manufacturer</code>), but just one <code>Product_A</code> node per <code>Manufacturer</code>.</p>
  <p>I tried the following:</p>
  <pre><code>CREATE CONSTRAINT ON (c:MANUFACTURER) ASSERT c.MANUFACTURER IS UNIQUE;
  CREATE CONSTRAINT ON (c:CUSTOMER) ASSERT c.CUSTOMER IS UNIQUE;
  
  LOAD CSV WITH HEADERS FROM
  'file:///small.csv' AS line
  
  WITH line LIMIT 20
  MERGE (CUSTOMER:Customer {Name: line.CUSTOMER})
  MERGE (MANUFACTURER:Manufacturer {Name:line.MANUFACTURER})
  MERGE (PRODUCT:Product {Name: line.PRODUCT})
  
  MERGE (MANUFACTURER)&lt;-[:PRODUCES]-(PRODUCT)
  MERGE (CUSTOMER)&lt;-[:CONSUMES]-(PRODUCT)
  
  ;
  </code></pre>
  <p>How would I model that correctly?</p>