When thinking of solutions, I always think of them as just containers that reference components. They provide a way for someone to group and reference the underlying components of what you are working on so that they can be moved from environment to environment. Apps are just another component in your environment.
The "Default" solution is the container that has everything in it. When you create a solution and add your components to it, any other solutions that also had those components in them, still have those components in them. If you change the component in any solution in that environment, the others solutions reflect that change because they're just pointing to the components.
When you make edits to tables and columns in the Dataverse, any solutions that contain those tables or columns will see the change. If you have an app in a solution with all it's related tables and make changes to the columns or add new tables in that app and in your solution, they'll show in the Dataverse.
As a best practice, I try to group what I'm working on into a solution so it's all in one spot.
To brush up on questions I have occasionally about solutions I look here: https://learn.microsoft.com/en-us/dynamics365/customerengagement/on-premises/developer/introduction-solutions?view=op-9-1
I hope this answers your question! If so, please let me and others know so we can assist more.