If it ok and recommanded to use a xml column to store any extra data that the user interface might provide?
For example, suppose an Employee table
CREATE TABLE Employee
(
EmployeeId int not null,
Name nvarchar(300) not null,
Phone varchar(30) null,
Email varchar(320) null,
Address nvarchar(max) null,
Data xml null
)
Data
could contains many values like additional phone numbers, comments ...
We expect that all our customer will be asking for different fields in Employee
, and we do not want to mess with the database structure every time they think of a new field to add.
We expect the data stored in the xml column to be infrequently accessed data. Beside being vieweable while browsing the list of employee, the data might need to be printed. So we do need to store the data type along the data (a little like a dataset is serializing its data)
Is this is a good approach for storing unknown extra data?
Edited Gave a better example
Update I haven't selected an answer yet because I'm discussing with my team of the different approach you guys suggested.