for a switch which host voice vlan , data vlan and a management vlan , what is the best practice for assign the native vlan ?
By default, Vlan 1 is the native Vlan in access and trunk switchports.
If you decide to use SVI Vlan 1 as your management Vlan, you need to have an access switchport with membership on Vlan 1 in connected state -or- a trunk port with its default native Vlan setting in connected state.
If the switchport is a trunk connected to an end-device, the native vlan should be the data vlan.
If the switchport, connected to an end-device, consist of access vlan and voice vlan, then there isn't any native vlan. Each device will use its appropriate vlan.
In order to access the management vlan, you need to have a trunk port connected to another switch, while allowing the data, voice and management on this switchport. The native vlan on this inter-switch link is irrelevant but it must match between the 2 switches.