If you're confused by trains, your should first read the "Stations, Junctions, and all things deadlock" post at viewtopic.php?t=18621, this is an excellent guide for how to design rail systems to be efficient and deadlock-free and I stole most ideas from there.
I use single-header trains and all lanes are one-way. I separate stations from normal traffic by creating "spur lines" that only serve that station. So, the main network is extremely simple, with stretches of double rail between junctions (replace by roundabouts as desired). For example, this is the main line in my current game:
All my stations consist of the following elements, displayed below:
1) junction from main line (black)
2) waiting bay(s) (red)
3) turnaround (green)
4) (un)loading bays (blue)
Entries into all bays have normal signals. Exit from waiting bays are chain signalled, exit from (un)loading is a normal signal. This will cause trains to wait in a waiting bay until their desired (un)loading bay is free. A station needs as many waiting bays as there are "extra" trains, where a train is extra if there are multiple trains using the same (un)loading bay. So, an iron smelting plant with one train bringing ore and another taking plates does not need a waiting bay as an (un)loading station is guaranteed to be free. If you have 3 trains grabbing plates and 4 bringing ore you need 2+3=5 waiting bays, assuming that you have one bay each for loading and unloading.
Some station designs:
Simple mining outpost
A station with only a single type of train (e.g. a mining outpost) does not need waiting bays as the trains will queue up on the spur line and turning point:
This outposts has loading chests, but with stack inserters that is no longer needed for throughput. Of course, if you only use a single train you probably want to have chests as a buffer, to prevent the mines shutting down when there is no train. What I do now is have two trains for each outpost, and trigger trains to leave when the other train arrives. That way, (1) the smelters get ore even if the train is not full yet; (2) there is always a train to unload into unless there is no demand for ore; and (3) trains do not move needlessly since they will stop at the smelter until empty.
Multiple loading bays, one train per type
This is my general manufacturing plant, which is a robot-based plant that makes everything that is produced intermittently (equipment, weapons, etc.). It has a lot of different inputs, but each is served by a single train, so no waiting bays are required:
Final example: my iron plant, which has ore unloading and iron+steel loading, and has multiple trains of each type:
Note that the waiting bays are (way) oversized, but I liked the symmetry. I don't split waiting bays into blocks because then the train can decide to wait behind a train of another type and get stuck there. I could of course have multiple blocks of waiting bays, but to prevent trains getting stuck behind other trains it should allow crossing between all bays in each block, i.e. funnel them back through a single track with chain signals.
All critique and comments welcome!
Blueprints
Edit: I bit the bullet and made a set of blueprints in creative mode. Trains drive on the left and first enter the waiting bays on the left. After that they turn around and choose a station. Each station has a separate waiting bay as well to minimize time between trains. It fits LLLL-CC or smaller. This is a picture of a full station in action with 5 waiting bays and 5 un/loading bays. This station can service 15 trains without deadlock assuming equal distribution, or max 6 trains for a single destination bay. I've also uploaded a youtube video where you can watch trains drive around (guaranteed 20% better than cat videos!): https://youtu.be/5Fcu2CI7MaE
I bit the bullet and made a set of blueprints in creative mode. Trains drive on the left and first enter the waiting bays on the left. After that they turn around and choose a station. Each station has a separate waiting bay as well to minimize time between trains. It fits LLLL-CC or smaller. This is a picture of a full station in action with 5 waiting bays and 5 un/loading bays. This station can service 15 trains without deadlock assuming equal distribution, or max 6 trains for a single destination bay. I've also uploaded a youtube video where you can watch trains drive around (guaranteed 20% better than cat videos!): https://youtu.be/5Fcu2CI7MaE
+ FULLY OPERATIONAL STATION