Because, first we have to create `Schema`s (`Table`s). Then in another iteration, we'll create foreign key constraints associated to them. And then we'll be assigning FKs to each `Table`.
The main reason for that is: `ForeignKey` objects include both `Table` and `Column` objects. So both of them should already be constructed.
I don't whether there is any good pattern to use immutable Collection for this use case.
If you know anything about it, I would be very happy.