对不起,我无法在标题中创建更具体的问题;这可能是由于我对术语不熟悉。
这是我正在使用的MySQL数据库部分的简化图:
示例数据可能是:
如果我删除了一个食谱,我就不会级联并删除所有相关的 recipeIngredientItems 和 recipeSteps 。但是,有一些并发症:
我应该如何为这些表设置外键约束?或者以某种方式重新设计数据库会更好吗?
编辑:
对于它的价值,这是我迄今为止所做的工作(就限制而言),尽管我不确定它是否是最优雅的解决方案。所有约束都设置为在删除或更改时级联:
recipeIngredientItem.amount: links to compoundMeasurement.idNumber
recipeIngredientItem.ingredient: links to ingredient.idNumber
recipeIngredientItem.recipe: links to recipe.idNumber
recipeStep.recipe: links to recipe.idNumber
simpleMeasurement.measurementUnit: links to measurementUnit.idNumber
simpleMeasurement.compoundMeasurement: links to compoundMeasurement.idNumber
有了这些,当我删除配方时,关联的 recipeIngredientItem 和 recipeStep 将被删除,但我需要去通过并明确删除与已删除的 recipeIngredientItem 相关联的 compoundMeasurement (后者将删除关联的度量)。当然,这很容易做到,只是略显不雅。但也许这是以多种方式使用 compoundMeasurement 的成本......
答案 0 :(得分:0)
叹息。
显而易见的解决方案是重新设计我的数据库以减少卑鄙的ludicrosity,但你们都已经知道了。