Je développe une application de gestionnaire de contacts à l'aide de SQL Server 2008 (base de données basée sur les services). La plupart des contacts ont plusieurs e-mails ou plusieurs numéros de téléphone. Y a-t-il un moyen de stocker un tableau en tant que type de données dans SQL Server? Ou est-ce que quelqu'un a une alternative à cette façon?Banque de stockage dans SQL Server 2008
Répondre
Vous devez créer des tables distinctes, avec une ligne par numéro de contact ou adresse e-mail.
CREATE TABLE Contacts (contactId int, name varchar(128), etc, etc
CREATE TABLE ContactEmail (contactId int, emailAddress varchar(128), etc
CREATE TABLE ContactPhone (contactId int, phoneNumber varchar(128), etc
Cela vous permettra de modifier les numéros individuels/e-mails, les supprimer, les ajouter, etc., sans avoir besoin d'un programme externe de déballer un tableau. Mais si vous voulez vraiment le stocker dénormalisé, vous pouvez transformer le tableau en une chaîne délimitée. . mettre un délimiteur entre chaque adresse e-mail (avec la magie appropriée pour s'assurer qu'une adresse ne contient pas déjà le délimiteur) puis le diviser au retour.
Les points-virgules fonctionnent bien en tant que délimiteur de courrier électronique. En fait, certaines bibliothèques prennent automatiquement en charge les adresses délimitées par des points-virgules. –
Il n'y a pas de type tableau dans SQL.
Vous devez créer une table de numéros de téléphone et stocker un numéro de téléphone par ligne et utiliser une clé étrangère (appelée, par exemple, person_id) pour faire référence à la table de personnes.
Une autre option que vous pouvez utiliser est de stocker les informations de contact en tant que document XML dans un champ de type XML dans votre table. Je ferais seulement ceci si je n'essaye pas de rechercher des personnes basées sur une certaine partie de cette information de contact. Par exemple, si vous pensez que vous pourriez trouver intéressant de trouver tous vos contacts qui ont des numéros de téléphone avec un indicatif régional spécifique, vous voudrez en faire un tableau séparé et le relier au lieu de le stocker de cette façon. Je sais que vous pouvez réellement interroger le XML dans SQL Server 2008, mais cela dépend vraiment du nombre d'enregistrements que vous allez avoir dans votre liste de contacts, car l'analyse de tout ce XML sur un grand nombre de données sera très lente comparée avoir des tables séparées.
J'utilise beaucoup les colonnes XML - et elles * peuvent * être une option. Ma recommandation principale cependant, est de savoir si les données doivent être * jamais * interrogées ou modifiées en dehors de l'entité XML-as-an, puis de la promouvoir dans une colonne avec DRI. – user2864740
Vous pouvez utiliser une variable de table, pour l'utiliser, vous devez utiliser une table de création DDL, mais vous devez d'abord écrire at (@). Avec cela, vous avez un tableau .... mais vous ne pouvez pas stocker cela sur une table, car une table est un tableau lui-même. Je vous ai vraiment besoin d'avoir une structure de données à l'intérieur de votre table, vous devriez utiliser un XML. Comme je comprends depuis SQL Server 2000 a plusieurs fonctionnalités pour travailler avec XML. Peut-être que si vous pouvez me dire plus de détails de vos raisons de le faire ... Je peux vous donner plus d'idées!
J'espère que mon answear peut vous aider à
- 1. Stockage SQL Server FILESTREAM
- 2. SQL Server 2008 - Schémas de stockage de documents
- 3. Authentification SQL Server dans SQL Server 2008
- 4. Stockage de hachage MD5 dans SQL Server
- 5. pagination dans SQL Server 2008
- 6. Stockage des messages Log4Net dans SQL Server
- 7. L'authentification SQL dans SQL Server 2008
- 8. Snippets SQL Server 2008 Sql
- 9. SQL Server 2008
- 10. SQL Server - Stockage de plusieurs valeurs décimales dans une colonne?
- 11. Stockage de la hiérarchie de sites Web dans Sql Server 2008
- 12. Collation SQL Server 2008
- 13. Requête SQL Server 2008
- 14. SQL Server 2008
- 15. Rapports SQL Server 2008
- 16. Sql Server 2008 Instalation
- 17. SQL Server Express 2008
- 18. SQL Server 2008 Question
- 19. SQL Server 2008 R2
- 20. Utilisation de PIVOT dans SQL Server 2008
- 21. Création de travaux dans SQL Server 2008
- 22. Comparaison de minutage dans SQL Server 2008
- 23. Comparaison de l'heure dans SQL Server 2008
- 24. Entreposage de données dans SQL Server 2008
- 25. fonction de pivot dans SQL Server 2008
- 26. Alignement de code Dans SQL Server 2008?
- 27. Notifications SQL Server 2008
- 28. Éditions SQL Server 2008
- 29. SQL Server 2008 Logins
- 30. SQL Server 2008 SP1
ce que cela a à voir avec WPF? –