2008-12-01 6 views
2

Je suis en train de travailler sur le meilleur modèle de base de données pour la configuration actuelle:moyen privilégié pour mapper le code avec des entrées utilisateur base de données créée

Un administrateur peut créer des « produits clients ». Cela signifie que les services/produits auxquels le client peut se connecter/s'abonner. Les cas simples où le produit coûte simplement un prix, ou l'abonnement au produit devrait envoyer un e-mail est facile à modéliser dans la base de données. Mais qu'en est-il du code backend très spécifique pour un produit client? Par exemple, un produit peut avoir un code très spécifique implémenté pour vérifier le statut d'un client sur une base de données différente. Comment puis-je mapper cette relation dans la base de données afin que je puisse activer/désactiver du code en fonction des paramètres du produit.

Ma façon intuitive de le gérer serait d'avoir une colonne de chaîne sur la table CustomerProducts où un ensemble prédéfini de chaînes pourrait être défini, par ex. "MyCustomCodeHandler", puis le code vérifie l'existence de cette chaîne pour l'exécuter. Mais pour moi, cela ne ressemble pas vraiment à une véritable relation entre la base de données et le code.

Répondre

1

Les données sont des données, tandis que le code est du code. Je ne recommanderais pas de stocker du code dans la base de données.

Si vous devez autoriser des clients à créer des types de produits (au sens des «types» orientés objet) avec du code associé, je choisirais de déployer ce code de la même manière que vous déployez un autre code.

Le code personnalisé peut également faire référence à des données personnalisées stockées dans la base de données. Je choisirais de créer une table dépendante par sous-type de produit, et de mettre les colonnes spécifiques au type là-dedans. La relation entre cette table de sous-types et la table de produits génériques est biunivoque. C'est-à-dire que la clé primaire de la table de sous-types est également une clé étrangère à la table de produits génériques.

Questions connexes