2011-10-13 53 views
1

我正试图围绕图形数据库进行包装。所以也许有人可以向我解释建立这种关系的正确方法。这主要是从neo4j的角度来看,但我认为它将适用于大多数图形数据库在图形数据库中表示烹饪食谱

我有一个Recipe节点和Ingredient节点。 Ingredient节点与Recipe节点具有ingredient_in关系。这种关系将具有几个属性,特别值得注意的是一个具有度量单位的金额字段。

我可以想象,在图中的其他地方会有一个UnitOfMeasure节点,这些节点会将转换比率转换为关系。

我一直在苦苦挣扎的一点是如何将成分 - >食谱关系表示为具有UnitOfMeasure。来自RDMS的感觉就像我需要另外一个节点,但是对于图形数据库来说感觉不对。

回答

3

这取决于两件事情:

一)你都认为关系或n元关系

B)你怎么用的单位和数量 - 可能在之间的节点更容易

海事组织,使用一个“正常”的设计,这样的

Recipe -- Entry   -- Ingredient 
      amount: double 
      | 
      | 
      UniOfMeasure 

是罚款条目是一个节点 - 即使你使用一个图形数据库,它可以处理归因边缘。这个设计与一个归属的n-ary edge btw完全一样 - 唯一的区别是Entry,现在可能被命名为“contains”,将是Edge而不是Node。