USB hub for multiple cameras

We want to connect 10 cameras with a pc. PCs with 10 or more USB connectors with their own host controller are expensive. Speed is not that important for us, i.e. if we read the camera images one after another and not in parallel, then that would be also ok for us.

Would it work to start and stop the camera streams that are streaming images from multiple cameras through the same host controller via a USB hub? Can cvbpy switch between different cameras in a setup like this, when I turn on and off the streams?

Would it make more sense in our case to use cameras with ethernet cables and connect them through a switch with a single ethernet port on the computer or does this setup have the same problem like the USB hub setup?

Could you suggest us a suitable PCI-e card?