An enum is a list of options defined at designtime and can't be changed in the runtime.
So using an entity to select the data is the way to go.
If you want to populate the entity the simplest way would be to create an overview and newedit page and allow someone to manage the data. Another option would be to create a microflow that runs after startup that creates the values and add the pages to allow for maintenance in the runtime.
I would add something like a boolean to set whether the option is active or not. Because when you delete the record the older records pointing to the record that you just deleted will no longer reference the data and you would loos the history. So on the page where you select the transporttype make sure the reference selector uses something like an xpath contraint like:
[active = true or id = object/relation_totransporttype entity]
The last thing is to make sure that the selected option that is maybe no longer slectable will stay set in the selector.
Hope this helps in solving your requirement.