2010-09-02 5 views
1

Lorsque vous utilisez une base de données autonome en tant que fournisseur d'appartenances, est-il habituel d'avoir une table d'utilisateurs spécifique à l'application dans la base de données? Par exemple, dis que j'ai une application qui gère les messages pour un utilisateur. Normalement j'aurais une table de user_messages et ferais référence à la clé étrangère de table d'utilisateurs? Cependant, si je n'utilise que l'identifiant dans la base de données d'adhésion, je ne peux pas référencer les messages d'un utilisateur par clé étrangère.Gestion des utilisateurs lors de l'utilisation d'une base de données autonome en tant que fournisseur d'appartenance

Les pointeurs appréciés

+0

Pourquoi pas? Le simple fait que les membres se trouvent dans une base de données distincte ne signifie pas que vous ne pouvez pas utiliser leur identifiant dans la table user_messages de votre base de données. –

+0

Oui, je pense probablement à ça. Mais si l'utilisateur est supprimé, il me reste une charge d'objets orphelins. Je suppose que je pourrais gérer cela dans le code. Merci pour la contribution. – Chin

Répondre

1

« si je viens d'utiliser l'identifiant dans le par un utilisateur db de membre Je ne peux pas faire référence aux messages par clé étrangère »

La question est ici l'application de la clé étrangère. Je ne connais aucun SGBD supportant des clés étrangères qui référencent une table à travers un lien de base de données. Et même si c'était possible, serait-ce souhaitable? Un tel arrangement signifierait que nous ne pourrions pas insérer d'enregistrements enfants dans notre base de données locale si la base de données distante est hors ligne pour une raison quelconque. La solution de contournement normale dans un tel scénario est la réplication, c'est-à-dire la conservation d'une copie de la table distante dans la base de données locale. Si nous avons un SGBD qui prend en charge les vues matérialisées distantes, cela peut être une implémentation assez simple.

1

Cela m'intéresse aussi. Cela ne peut probablement pas être considéré comme une réponse, mais je le mettrai à jour une fois que je l'aurai mis en place. J'utilise également le fournisseur d'abonnement ASP.NET avec mon application Web; Bien que j'ai inclus les tables SQL et les procs pour le fournisseur d'appartenance dans ma base de données, j'ai maintenu la séparation logique afin que vous puissiez l'exécuter séparément si vous le souhaitez.

Bien que vous vous concentriez sur les problèmes de base de données ici (ce qui est assez juste), il est important de se rappeler qu'avec le fournisseur d'appartenance ASP.NET, vous avez plus à gérer qu'une simple base de données. La chose à propos du fournisseur d'appartenance ASP.NET est le fournisseur lui-même - le référentiel de données réel est extrait.

Je suppose qu'avec le fournisseur d'appartenance ASP.NET je serai capable d'utiliser les services/API du fournisseur lui-même pour aider à gérer les relations dont vous parlez. Donc, je ne vais pas me fier à la base de données en particulier - parce que le «fournisseur» est l'interface externe que je devrais traverser, et l'utiliser me lierait à cette source de données.

Questions connexes