J'ai besoin de stocker quelques attributs d'un utilisateur authentifié (j'utilise l'API d'adhésion) et je dois faire un choix entre utiliser des profilés ou ajouter une nouvelle table avec Userid en tant que PK. Il semble que l'utilisation des profils soit rapide et qu'il a besoin de moins de travail. Cependant, je vois les descentes suivantes: p>
Ma première impression a été que l'utilisation de profils peut provoquer des maux de tête de maintenance à long terme. Pensées? P>
3 Réponses :
me semble que vous avez répondu à votre propre question. Si votre point 1 est susceptible de se produire, une table SQL est la seule option sensible. P>
Consultez cette question ... P>
asp.net intégré Profil utilisateur vs. CLASSE / TABLES D'UTILISATEUR VIEILLES P>
Le premier indice que les profils intégrés sont bien conçus est leur utilisation de données délimitées dans une base de données relationnelle. Il y a quelques cas qui ont délimité des données dans un SGBDM, mais ce n'est certainement pas l'un d'entre eux. P>
sauf si vous avez une raison spécifique
mal conçu? Comment concevoiriez-vous un système de profil dynamique pouvant fonctionner hors de la boîte en modifiant un fichier de configuration ... en 2003? Je dirais qu'il y avait des gens assez intelligents qui la mettent en place et que votre «indicateur» est mal informé.
@CODE POET: Down Votes ne sont pas de désaccord avec des opinions :) C'est mon opinion que la mise à jour des données délimitées dans une colonne unique pour les données de profil générique est une mauvaise conception. Il existe des conceptions de table bien connues qui abordent ce concept.
«Si vous voyez une désinformation, votez-la. ' stackoverflow.com/faq - caractériser catégoriquement les profils ASP.NET comme mal conçu est la désinformation et peut également détourner inutilement certaines avec moins d'expérience de l'utilisation du très Installations simples fournies par les fournisseurs par défaut à des solutions spécialisées dans les pièces de rechange inutilement complexes. Encore une fois, comment fourniriez-vous la même fonctionnalité, c'est---------vouli la possibilité de fournir une méta de l'utilisateur transitoire et dynamique en utilisant uniquement la configuration?
Et je devrais dire que votre conclusion est également un mauvais conseil. Sauf si vous avez une raison spécifique pas i> d'utiliser le fournisseur par défaut, il est toujours préférable de ne pas réinventer la roue.
Il y avait un article sur MSDN (maintenant sur asp.net http : //www.asp.net/downloads/sandbox/table-profile-provider-semples ) qui explique comment créer un fournisseur de table de profil. L'idée est de stocker les données de profil dans une table par rapport à une ligne, ce qui facilite la requête avec seulement SQL. P>
Plus sur ce point, SQL Server 2005/2008 fournit une prise en charge d'obtenir des données via des services et du code CLR. Vous pouvez éventuellement accéder aux données de profil via l'API au lieu des tables sous-jacentes directement. P>
Quant au point n ° 2, vous pouvez définir des valeurs par défaut sur les propriétés et que cela ne mettra pas à jour immédiatement les autres profils, le profil serait mis à jour lors de son accédation suivante. P>
Pouvez-vous commenter la flexibilité et la performance du «fournisseur de table de profil» pour une base d'utilisateurs importante?
+1 Ceci est le moyen d'y aller si vous avez des données de profil inférieur et / ou des exigences d'accès. La performance est bien meilleure avec un fournisseur basé sur la table en raison de la sérialisation / de désérialisation requise par la mise en œuvre du profil dynamique par défaut.
@DotNetDude: Je crains que cela dépend de votre définition de grande taille. En ce qui concerne la flexibilité, en utilisant un fournisseur, les développeurs permettent de continuer à utiliser l'API de profil dans le code. Cela rend les solutions de développement google-capables (ou Stackoverflow FIERSEarch-capables, si vous préférez) au sens général au lieu d'une sur commande personnalisée. Les mesures de performance devraient également tenir compte de l'intention originale du point n ° 1 de la question: avoir les données de profil disponibles dans un format plus facile à interroger que le schéma DB de profil standard. Le fournisseur de table gagne quelques points là-bas.
+1 - meilleure question. montre l'initiative dans laquelle vous avez examiné la question vous-même et avez encore des questions.
J'ai monté un moyen d'interroger les données de fournisseur de profil par défaut qui fonctionne très bien pour moi: Stackoverflow.com/a/13747590/ 64334