As far as best approach is concerned, you definitely don't want to assign one NIC per VM - you'll never be able to scale/take full advantage of virtualization that way. You can create a virtual switch (vSwitch) with as little or as many physical NICs attached to it as you'd like. In most deployments you'll find at least two physical connections to a vSwitch for redundancy/load balancing.
If you have 4 NICs, you could create two vSwitches with two NICs each (one for management traffic, and one for VM network traffic). Some people argue it is a waste to dedicate physical interfaces to management traffic, but it really depends on your environment. Some people are required to have dedicated management links or simply prefer it.
If you create one vSwitch with 4 NICs, you'll want to configure the ports on your switch to be trunk ports (carrying management and any other networks required). On the vSwitch you'll create one port group per VLAN, and of course you'll have a VMKernel adapter for management traffic.
When you assign multiple NICs to a vSwitch, vSphere will by default implement a fault tolerance model - if a physical link goes down, it uses another active one. If you want to implement load balancing you need to set the vSwitch teaming policy to "route based on IP hash". If you use the IP hash method, you will need to configure an EthernetChannel/bond/aggregate/etc. on your switch to ensure they are properly communicating with each other and using the same algorithm for load balancing.