It really all depends on your approach. These days it is easier to ask people to log in by email, which can be used as a user name and should be unique. It is sometimes hard to remember the username you have for some sites as they may differ from other sites you visit. By doing email you are ensuring it would be unique.
One thing to keep in mind though is that you should definitely make an ID for each user. From there you assign an email or even a username. This would allow the user to change it at any time even if you don't intend to allow them to do this. Otherwise you may pin yourself in a corner and would have a hard time improving your approach.
Another thing you can also do is implement a dual email and username login approach. An example is Facebook. You can login to facebook with your username, your email or even your phone number. Username should definitely be unique in nearly all cases. However you can add a field if you wish for display name, which won't have to be unique. Yes it is slightly more complicated to build, but in the end you are reducing friction for your users and making it far easier for them to come back.