There are, of course, advantages and disadvantages for each option - however unless you have a very (very) limited storage, I really see no reason why you should choose to be so stingy about it and avoid setting up proper normalized tables, especially If you expect only to use either email or phone number.
In such a case, the best design would probably be to simply add a table for phone numbers per person and a table for emails per person.
The one "big" advantage of storing all communications options in one column would be to avoid having your database structure change when adding new ways for communication with a person - but that would require a better column name - something like this:
CREATE TABLE CommunicationMethods (
Id int PK,
Name varchar(100),
CONSTRAINT UX_CommunicationMethods_Name UNIQUE (Name)
)
CREATE TRABLE CommunicationOptions (
PersonId int,
CommunicationMethodsId int,
CommunicationIdentifier varchar(100),
CONSTRAINT PK_CommunicationOptions PRIMARY KEY(PersonId, CommunicationMethodsId, CommunicationIdentifier)
)
The CommunicationMethods table will hold records like
1, Phone
2, Email
and possibly also
3, Skype
4, Teams
5, Zoom
etc'
and the CommunicationOptions will hold the combination of the person's Id, the communicationMethod's Id and the identifier for that person with this method - so phone number, email address, Skype/Teams/Zoom account etc'
This design will force you to write a more cumbersome and sophisticated code than the simpler design of a table per communication method, but it does have a big advantage when adding new ways of communications with a person - because you're only going to add new data, and perhaps some new validation rules, but the structure will remain the same.