首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >食品信息图建模

食品信息图建模
EN

Stack Overflow用户
提问于 2013-05-02 22:00:21
回答 1查看 161关注 0票数 0

我从mongodb中获得了以下信息,希望导出到neo4j图中:

代码语言:javascript
复制
"_id" : 1366,
"fields" : {
"title" : "Beef Steak",
"keywords" : [
    "beef",
    "steak"
],
"categories" : {
    "category" : "Meat",
    "subcategory" : null,
    "verified" : false,
    "predicted" : true
 },
 "nutrients" :
    {
        "tag_name" : "FASAT",
        "value" : 1.352,
        "unit" : "g",
        "title" : "Saturated fatty acids"
    },
    ...

我一直在读一些neo4j建模示例,但我不确定我的模型。

我就是这么想的:

节点:

  • 食物
  • 关键字
  • 类别
  • 子范畴
  • 营养物

关系:

  1. 食品- rel_name ->关键字
  2. 食物- rel_name ->类别
  3. 食物- rel_name ->亚类
  4. 范畴- rel_name ->子范畴
  5. 食物- has_nutrients ->营养素

"has_nutrients“关系名称将包含一个”值“属性,以指示一种食物有多少营养成分。

我考虑了2,3和4种关系,可以执行不同的查询:-“肉”类的子类别,-食物的类别和子类别,-all食物与“Pasta”类的食物。也许还有更简单的方法。

EN

回答 1

Stack Overflow用户

发布于 2013-05-03 03:22:47

如果你想不出更好的关系的名字,就做这样的事

代码语言:javascript
复制
food - [HAS_KEYWORD] -> keyword
food - [HAS_SUBCATEGORY] -> subcategory
subcategory - [BELONGS_TO] -> category
food - [HAS_NUTRIENT] -> nutrient

对于你的子类别,我通常喜欢从孩子到父母的方向,但我通常更倾向于选择。

你需要区分类别和子类别吗?比如,如果类别是Meat,子类别是Pork,那么您需要实际链接到Meat吗?您可能只需要连接到Pork,这就意味着Meat可以减少关系。

代码语言:javascript
复制
({name='Pork', type='Subcategory'}) -[BELONGS_TO]-> ({name='Meat', type='Category'})
({name='Pork Chops', type='Food'}) -[HAS_SUBCATEGORY]-> ({name='Pork', type='Subcategory'})

这将减少关系,因为您将能够从一个子类别中隐含一个类别。

除了上面的建议之外,其余的看起来都是非常面向图形的,并且看起来像一个可靠的设计。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16348438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档