0

我正在为一个班级做一个项目。我正在创建一个膳食计划应用程序,该应用程序允许您将产品添加到数据库中,然后选择要包含在膳食中的产品,并且可以将膳食添加到膳食计划中,您可以按每周计划查看该膳食计划。

我已经设置好产品,可以将它们添加到数据库中(这是最简单的部分),所以我的问题是将产品添加到膳食中的最佳方法是什么。

膳食模型:

public class Meal
{
    public int MealId { get; set; }

    public String Name { get; set; }

    public virtual Product Products { get; set; }

    [Display(Name = "Creator")]
    public int UserId { get; set; }
}

产品型号:

public class Product
{
    public int ProductId { get; set; }
    public int UserId { get; set; }
    public int UnitId { get; set; }
    public String Name { get; set; }
    public Decimal Quantity { get; set; }
    public Boolean Included { get; set; }

    public virtual Unit unit { get; set; }
}

我考虑将 bool 添加到产品模型中以在选择它时发出信号,但不确定如何将其包含在许多不同的膳食中。我不想为每餐创建不同的产品,因为这似乎违背了拥有一个数据库来保存产品的目的。

不太确定如何进行。我还假设无论我如何解决这个问题,我都可以将同样的原则应用于膳食计划场景。有什么建议可以为我指明正确的方向吗?

4

1 回答 1

0

据我了解,您似乎正在寻找两个表之间的多对多关系。我不是数据库工程师,但我认为您可能需要一个中间表来充当餐食和产品表之间的链接。就像是:

public class ProductInMeals
{
    public int ProductId { get; set; }
    public int MealId { get; set; }

    /* Any other fields you want to associate with this relationship */
}

所以你最终得到一个带有 2 个外键的表。可能值得添加主键和有关关系的更多详细信息,但这完全取决于您。

于 2013-04-22T13:59:43.967 回答