How Can I avoid multiple thing creations?

So my problem is the following.
I am creating an airbnb style website.
The user checks one listing and if he want to book it then he has to make a request. I set up a booking request as a data type. It is populated with some fields including creator(current user - the one who is making the request) and landlord (listing creator). The request is made by steps, in which the first one a thing (request) is created, and following which makes changes to previous thing created (last). So far so good and in case of creating a request I don’t have any problem. The problem comes if the current user decides to go back in browser or the browser goes down for some reason. If this happens I have tested and it creates different entries in data (booking request), so I end up with different booking request entries for the same user. How do I avoid this?

@keith @emmanuel You think you could give me an hand?

Maybe there’s a way to delete all booking requests made by (current user), involving (current listing) in lat step, say the last button the user has to click to complete the request. Plus is there anyway to delete all (booking requests) involving current user and current listing if he decides to leave the request steps? I ask these to avoid the landlord to receive a request which was not completed.

Hi.
I think you need to take the first step, make a check (if the request from the current user for the current number already exists - do not create a new record)
you should no longer have duplicates, because New entries will be created only if the user does not yet have such a reservation.

the second is that you must make confirming reservations - and only confirmed reservations should be withdrawn to the homeowner

and then, if the user accidentally closed the browser or went back and did not confirm the reservation - you can ask to confirm it on any page and at any stage, because you will already have a list of unconfirmed reservation

Thanks for the reply @jennifervasilenko . How do I make such restrition as you mention in the first step.
The second how can I make such confirmation, and then to finish how to make such pop up or whatever appear to ask to confirm? the process involves the user making the request placing his payment details

also I was just thinking about and it makes total sense what youre saying but in this case I need two different types of confirmations, one by the system and one by the landlord. How should I do it, custom states? Any relevant posts I could have a look perhaps

Is the reservation data listed in the Database?
You mentioned “steps, in which the first one a thing (request) is created, and following which makes changes to previous thing created (last)”

I think you need to do a new field (for example, “Confirmed” yes / no), and add an intermediate step before filling out the payment details “Confirm reservation?”
When the user confirms, the value field becomes Confirm = yes.

If you have entries in the database with the Confirmation field = no, you can request confirmation of this reservation and complete the reservation.

If you do not save your reservation in the database, it will be difficult to avoid duplicate

I managed to do that yes. Inside the booking request data type I inserted two different data fields. One being Tenant confirmation type yes/no, and one being Landlord confirmation being type text Where it will be (yes/no). Now I am strugling understanding how can I set a text field showing the result of Landlord confirmation, where if the value is empty (neither yes or no) it will show pending. Any thoughts?

If the result of Landlord confirmation is text field, you can set default value, like “pending” or “wait for confirmation”.
If this field in DB has yes/no type you can set conditions in the text element
If it will be confirmed = yes - text “confirmed”,
confirmed = no - text “no confirmed”,
empty value - text “pending”

It’s difficult to correctly suggest what to do, without knowing your database structure and field types)))

That is of great help yes. thank you very much