我有一个Ingredient
表和一个Food
表,并希望使用IngredientToFood
表将它们链接起来。我还希望能够指定Order
,因为这对营养信息非常重要。我的IngredientToFood
表目前包含IngredientId
,FoodId
和Order
列,两个ID上有复合PK,每个ID都有2个FK。我想知道的是实施订购原料的最佳实践方法。我已经看到了这里和其他地方提出的以下解决方案,我想知道哪个是我用例的最佳解决方案。
Order
列指定数字顺序,在(100,200,300等)之间留下大量分隔。beforeIngredient
和afterIngredient
。Order
值(如果更新,您会怎么做?)我不是在寻找有史以来最优雅的解决方案,而是仅仅考虑订购原料的应用。我假设我可能会更频繁地插入/删除成分,而不是重新排序现有成分。
答案 0 :(得分:1)
使用“订单”列指定数字顺序,在(100,200,300等)之间留下大量分隔。
这是正确的想法,但你提到了营养信息的重要性。
您可能还想创建一个营养表,其中列出了您想要跟踪的不同营养素。您可以为每种营养素分配一个数字,例如100,200,300等,其中较低的数字是更重要的营养素。
此营养素编号将是订单表中的订单编号。
营养表超过任意订单号的优势在于您可以查询食谱中的营养素。