我正在为一个班级的项目工作。我正在创建一个膳食计划应用程序,允许您将产品添加到数据库,然后您选择要包含在用餐中的产品,并且可以将膳食添加到您可以按周计划查看的膳食计划中。
我已经设置了产品并且可以将这些产品添加到数据库中(这很容易),所以我的问题是将产品添加到餐中的最佳方法是什么。
膳食模型:
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添加到产品型号中,以便在选择时发出信号,但不确定如何将其包含在许多不同的食物中。我不想为每顿饭创造不同的产品,因为这似乎打败了拥有数据库来存放产品的目的。
不太确定如何继续。我还假设无论如何我解决这个问题,我可以将同样的原则应用于膳食计划方案。有什么建议指引我正确的方向?
答案 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个外键的表。可能值得添加主键和关于这种关系的更多细节,但这完全取决于你。