2010-09-29 4 views
1

Cela peut être une question impossible - mais si quelqu'un a des idées, même si elle est une solution écrite bespokely.net couche de données ... idées Extendable plaît

Nous essayons de trouver une idée pour un programme simple à envoyer aux gens, soutenu par une base de données. À un niveau simpliste, il y aura un objet "Utilisateur", qui a juste un nom et un email. Le programme permet juste à quelqu'un d'éditer le nom et l'email, et tout est bon

Ensuite, nous voulons que d'autres développeurs puissent ajouter leurs propres champs et écrire un "plug-in" pour l'éditer. Donc, j'ai une copie du programme, j'ai pu écrire mon plugin qui ajoute "nom de comany" à la forme - et il pourrait être seul avec la couche de données, mais le problème avec cette méthode est que vous finissent par l'exécution de deux commandes base de données

select name, email de l'utilisateur sélectionnez companyname de l'utilisateur

Idéalement, ce serait vraiment cool si le plugin pour ajouter quelque chose à l'dataLayer-à-dire inclure companyname sur l'utilisateur, puis vous avez une seule commande

select name, email, companyname de l'utilisateur

parfait ... mais comment

idées sur une carte postale - ou au moins comme une réponse ici

+0

Je ne comprends pas vraiment pourquoi vous êtes préoccupé par 1 vs. 2 requêtes. Ressemble beaucoup à "if (cond == true) vs if (cond)". –

+0

Eh bien, sûrement une requête est meilleure que 2? C'est un exemple simpliste, donc cela pourrait être 20 requêtes contre 1. – Paul

Répondre

0

Je pense que je l'ai trouvé aussi près que je vais faire - Fluent NHibernate semble offrir beaucoup de potentiel dans ce domaine

+0

Mauvaise réponse - flueny hybernate ne traitera surtout pas des manipulations de structure de base de données nécessaires. – TomTom

1

Qu'en est-il ajouter un champ XML comme des données supplémentaires à votre table d'utilisateurs, de sorte que le programmeur « plugin » peut ajouter toutes les données en elle. MS SQLServer (à partir de la version 2005 je pense) vous permet d'interroger le XML à partir de la requête principale, de sorte que vous pouvez également fournir un point d'entrée pour ajouter des conditions à la clause where si nécessaire. Donc, si vous obtenez toujours l'information dans le champ XML, le développeur du plugin n'aura plus qu'à lire et écrire les valeurs qu'il veut dans le XML, et remplir les contrôles qu'il a créés.

+0

Ce serait bien, vous pourriez tenir le schéma XML comme données d'application – MikeAinOz

Questions connexes