2015-09-27 59 views
1

我正在一个小网站上工作。数据库已创建,我们需要现在从sql创建对象。Sql到对象,多对多

通常,在“多对多”关系中,我使用列表来表示这种关系。 (配方中的配料清单,如果需要,配料配料清单)。 但我不知道什么是结点表包含字段时的最佳方式。

例如与论文表:

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

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

我不知道:

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

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

+0

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

回答

1

这是一个简单的关联类,你会喜欢这个型号:

单表

enter image description here

您具体的对象模型,它非常精细。

0

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

目前,INGREDIENT_IN_RECIPE包含额外的信息,这是非常重要并进一步指明RECIPEINGREDIENT之间的关系,所以这个限定它是一个适当的实体。

恕我直言,这里最好的办法是创建一个INGREDIENT_IN_RECIPE表的实体类,并至少在RECIPE实体类上列出它。你需要检查一下INGREDIENT实体的关系是否真的需要和有用。