MVC4应用程序最佳方法将数据库中的多个项目添加到模型中

时间:2013-04-22 13:42:34

标签: database-design asp.net-mvc-4 model

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

我已经设置了产品并且可以将这些产品添加到数据库中(这很容易),所以我的问题是将产品添加到餐中的最佳方法是什么。

膳食模型:

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添加到产品型号中,以便在选择时发出信号,但不确定如何将其包含在许多不同的食物中。我不想为每顿饭创造不同的产品,因为这似乎打败了拥有数据库来存放产品的目的。

不太确定如何继续。我还假设无论如何我解决这个问题,我可以将同样的原则应用于膳食计划方案。有什么建议指引我正确的方向?

1 个答案:

答案 0 :(得分: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个外键的表。可能值得添加主键和关于这种关系的更多细节,但这完全取决于你。