Automatic modification of linked data

Hello community, I need help:

I’m creating a cooking recipe app with basic ingredients already in the app

Data structure:
recipe>recipe item>ingredient

A recipe contains several recipe items, a recipe item has only one recipe.
A recipe item has only one ingredient, one ingredient can be used by multiple recipe items.

Basic components are native in the application and are accessible to all users.
When a user wants to modify a basic ingredient (ex: ingredient 1), I would like to duplicate it (ex: ingredient 1*) so that the user can modify it and replace the basic ingredient (ingredients 1 ) in recipe items that already use it.
An idea ?