0

我有一张Ingredient桌子和一张Food桌子,想用一张桌子把它们联系起来IngredientToFood。我还希望能够指定Order,因为这对营养信息非常重要。我的IngredientToFood表目前有、 和列IngredientId,在两个 ID 上具有复合 PK,并且 2 个 FK 引用每个相应的 ID。我想知道的是实施订购配料的最佳实践方式。我在这里和其他地方看到了以下提出的解决方案,我想知道哪个是我的用例的最佳解决方案。FoodIdOrder

  1. 使用该Order列指定数字顺序,在(100、200、300 等)之间留下大量分隔符。
  2. 在这种情况下,使用两列 abeforeIngredient和。afterIngredient
  3. 在插入或删除之前使用触发器重新编号现有Order值(在更新的情况下您会做什么?)

我不是在寻找有史以来最优雅的解决方案,而只是在寻找一种对订购成分的应用有意义的解决方案。我假设我可能会更频繁地插入/删除成分,而不是重新排序现有成分。

4

1 回答 1

1

使用 Order 列指定数字顺序,在(100、200、300 等)之间留出大量间隔。

这是正确的想法,但你提到了营养信息的重要性。

您可能还想创建一个营养表,列出您想要跟踪的不同营养素。您可以为每种营养素分配一个数字,例如 100、200、300 等,其中较低的数字是更重要的营养素。

这个营养素编号将是 Order 表中的顺序编号。

与任意订单号相比,拥有营养表的优势在于您可以查询食谱中的营养成分。

于 2013-01-06T21:45:34.847 回答