好的,对于奇怪的措辞感到抱歉。
我有一种情况,我有一定数量的数据库行无法删除。我们称它们为配料。我有很多属于食谱的配料。然而,这些食谱使用相同的成分。使用相同意味着它们必须使用完全相同的行,因为这些成分是由外部脚本播种的。换句话说,这些成分永远不会由应用程序本身创建,而是预先加载。
这就是问题所在。我希望能够在不删除配料的情况下删除食谱,但我希望配料仍然属于他们。
建议?
最佳答案
我无法发表评论(没有足够的代表),所以我将其作为答案发布。我认为您可以创建一个存储 ingredient_id 和 recipe_id 的表,将其命名为 RecipeToIngredients 或类似名称。然后,您可以将 ingredient_id 与配料表中的记录相关联,并将 recipe_id 与配方表相关联。您可以将多个食谱链接到完全相同的成分行。
你说你想删除食谱而不删除成分,所以你可以用这个设置来做到这一点。删除食谱时,可以删除RecipeToIngredients表中的记录,不能删除Ingredients表中的记录。
然后你说“我希望成分仍然属于他们”。通过“他们”,你的意思是仍然属于食谱吗?如果是这样,那么我不会删除配方,可能会在配方表上创建一个“事件”字段并将其设置为非事件状态。或者您仍然可以删除 Recipe 并将记录保留在 RecipeToIngredients 表中,但是您将在该表中拥有一个没有任何意义的 recipe_id 值。如果您所说的“他们”不是指食谱,那么如果您能澄清您的意思,那将会很有帮助。
关于sql - 无法删除某些行的数据库关系建模,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41536673/