Si cela est correct et recommandé d'utiliser une colonne xml pour stocker toutes les données supplémentaires que l'interface utilisateur peut fournir?Est-il acceptable d'utiliser une colonne XML pour stocker des données supplémentaires?
Par exemple, supposons une table d'employés
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
pourrait contient de nombreuses valeurs comme les numéros de téléphone supplémentaires, des commentaires ...
Nous nous attendons à ce que tous nos clients demandera des différents domaines Employee
, et nous ne voulons pas jouer avec la structure de base de données chaque fois qu'ils pensent à un nouveau champ à ajouter.
Nous nous attendons les données stockées dans la colonne XML à des données peu fréquentés. En plus d'être visible tout en parcourant la liste des employés, les données peuvent avoir besoin d'être imprimées. Nous avons donc besoin de stocker le type de données le long des données (un peu comme un jeu de données est sérialisation ses données)
Est-ce est une bonne approche pour stocker des données supplémentaires inconnus?
Edité a donné un meilleur exemple
Mise à jour Je ne l'ai pas choisi encore une réponse parce que je discute avec mon équipe de l'approche différente les gars proposées.
Ceci est plus communément appelé modèle de valeur d'attribut d'entité (EAV). Soyez très prudent avec lui car il y a des inconvénients considérables dans la performance si utilisé pour stocker le mauvais type d'informations. –
+1 pour le commentaire de Spencer Ruport. Notez qu'il ne fait pas ce _wrong_ (+1 pour la réponse, aussi), juste que vous devez faire attention avec lui. –
@Spencer Ruport: Merci pour le terme. –