lundi 29 octobre 2018

Modeling and entity with field uniquely identifying the state of an object

I have the following question.

I have the following case. A reservation, this reservation be canceled, it can be newly created it can be Confirmed.

There might be different reasons for cancelation. Lets say the reservation has expired, or it may have not been processed within certain timelimit or some other reason.

In order for a reservation to be confirmed a multiple sub - transactions should be performed. This mean that there is a flow within the Confirmation itself. The solution my team came with is some sort of work table holding many different statuses. Which is fine. I felt the need to uniquely identify the state of a reservation by declaring a field ReservationStatus that depicts certain variation of statuses that are already defined in the table. In this case the Reservation status would be NEW,CONFIRMED,CANCELED,REJECTED. Each state will depict certain variation of statuses in the work table.

My team was convinced that this is adding additional complexity. I think this is the opposite it simplifyes the flow. It also declares a natural discriminator and polymorphism. We are supposed to use Queues and asynchroneus processes.

How can I actualy jsutify that we should have such column it apears the arguments I already mentioned were not enough?

Aucun commentaire:

Enregistrer un commentaire