我正在努力学习SQL和实体框架( entities ),为了做到这一点,我想创建一个应用程序来帮助管理膳食,但是我有一个问题,要为我的实体做一个灵活的设计。我考虑过在一个名为Products的表格中存储每100克产品及其营养特性的信息。问题是,用户应该能够选择产品(从产品表),然后设置一个吃的数量,并将其添加到他们的膳食。因此,用户应该在膳食计划中看到营养特性适当地乘以给定数量的产品。
示例:
1.给定产品的记录:{ProductID: 1,名称:“鸡”,数量: 100,千卡数: 99,蛋白质: 20,碳水化合物: 0,脂肪: 1.3}
2.使用者:吃了250克鸡肉。
3.输出: {MealID: 1
ProductID: 1,数量: 250,千卡数: 247.5,蛋白质: 50,碳水化合物: 0,脂肪: 3.25,
其他产品
我不知道是否应该创建另一个表来存储那些具有用户定义的数量的产品,还是应该根据这个数量和产品的记录来计算它。我知道我们不应该存储副本,所以想要另一张桌子似乎很糟糕。我会感谢你的帮助。
发布于 2017-12-18 14:12:22
虽然营养价值与产品直接相关,但我会将营养信息分离到自己的表格中,每个营养价值都作为自己的记录(而不是列)。
Product:
ProductID
ProductDescription
Nutrition:
NutritionID
NutritionDescription
NutritionValues:
ProductID
NutrionID
ValuePer100Grams这允许您在不更改模式的情况下为产品添加新的营养价值,因为它只是在营养和NutritionValues表中添加另一条记录,而且也不要求每个产品都有每个营养属性的值输入。
我还建议使用ServingSize表来确定产品的乘数,以便将服务大小转换为100克。
ServingSize:
ProductID
GramsPerServing这将允许您的用户灵活地输入食物的数量(一片面包),并为他们处理转换为克的过程。
https://stackoverflow.com/questions/47857062
复制相似问题