Sand: similar to a beach. For planted aquarium you want to use an inert variety like play sand, pool filter sand, or aquarium sand that says it doesn't effect ph.
Gravel: larger grain than sand but comes in large and small grain size. If having bottom dwelling fish, make sure it's smooth not sharp.
Dirt: This can range from certain garden soils to specialty aquatic soil. The main thing you want to avoid is any soil that contains inorganic fertilizers. These could potentially harm fish or inverts.
Flourite: iron rich clay substrate. Provides iron for long period of time.
In my experience dirted provides the fastest initial growth, but does not provide nutrients very long for medium/high light setups. It is also very messy to move plants or decor.
Sand or gravel alone will require root tabs from start to end; as they provide no nutrients for plants. Just a medium to anchor roots. Gravel is harder to clean but gives better medium for roots.
Flourite: provides iron for plants for a very long time. Is not always the best looking substrate. Also requires lots of rinsing before going in a tank.
Any of these substrates can be used with an hob.
Only filtration I would not do based on substrate is undergravel with sand or dirt.
Also can do combinations of above.
Sand/gravel on top of dirt etc.
Sent from my iPhone using Aquarium Advice