【问题标题】:Sql to object, many to many with fieldSql 到对象,多对多与字段
【发布时间】:2015-12-24 17:36:43
【问题描述】:

我正在开发一个小网站。数据库已创建,我们现在需要从 sql 创建对象。

通常,在“多对多”关系中,我使用列表来表示这种关系。 (配方中的成分列表,如果我需要,成分中的配方列表)。 但是我不知道当联结表包含字段时最好的方法是什么。

以这些表格为例:

######            ####################            ##########
RECIPE            INGREDIENT_IN_RECIPE            INGREDIENT
 id                  id_ingredient                  id
 name                id_recipe                      name
                     quantity
                     other

有没有最好的方法从这个 sql 创建对象?

我不知道:

  • 我需要创建第三个对象“IngredientInRecipe”。并在食谱/配料上列出?
  • 也许在成分中创建字段数量/其他,并且仅在我想将成分作为“ingredientinrecipe”处理时才使用它?
  • 或者创建一个带有数量/其他的成分子类?

也许我完全错了,我只需要在配方中创建列表并使用 sql 查询或数组来处理其他事情,但我有点迷路了。

【问题讨论】:

  • 通常,创建这样的“与属性的关系”的最佳方式是定义具有 RECIPE 和 INCREDIENT 的第三个实体,以及任何关系数据的成员。然后做两个OneToMany/ManyToOne关系

标签: java mysql postgresql object uml


【解决方案1】:

这是一个简单的关联类,您可以这样建模:

您使用单个表的具体对象模型非常好。

【讨论】:

    【解决方案2】:

    这里的答案是基于问题是INGREDIENT_IN_RECIPE本身是一个实体,还是只是一个关系表来在数据库中创建多对多。

    目前,INGREDIENT_IN_RECIPE 包含附加信息,这些信息非常重要,并进一步指定了RECIPEINGREDIENT 之间的关系,因此这证明它是一个适当的实体。

    恕我直言,这里最好的方法是为INGREDIENT_IN_RECIPE 表创建一个实体类,并至少将其列在RECIPE 实体类中。您需要检查来自INGREDIENT 实体的关系是否真的需要和有用。

    【讨论】:

      猜你喜欢
      • 2017-12-12
      • 1970-01-01
      • 2012-10-31
      • 1970-01-01
      • 2013-08-18
      • 2012-08-18
      • 2019-09-19
      • 1970-01-01
      相关资源
      最近更新 更多