Pour une application, nous capturons certaines données de formulaire. L'utilisateur peut inclure les différentes sections à volonté.Système de type personnalisé dans une base de données relationnelle
Le type de données qui doit être capturé dans chaque section est personnalisé par section. Parfois, ce sont de simples dictionnaires de paires clé-valeur. Parfois, ils contiennent des sous-composants avec des relations un-à-plusieurs ou plusieurs-à-plusieurs. Bien que le nombre de sections puisse augmenter, pour chaque section un schéma serait connu. Dans le passé, les sections de formulaire étaient fixes et nous pouvions simplement coder en dur les structures de table pour chaque section. Nous n'avons pas de façon générique d'implémenter des sections - c'est un nouvel accès aux données et des tables pour chaque nouvelle section. MAIS, une nouvelle exigence indique que l'utilisateur devrait être capable de concevoir ses propres sections. Pour éviter une manipulation dynamique des tables de base de données, nous souhaitons migrer vers un schéma d'ordre supérieur pouvant exprimer ces sections dans les données.
Si les données étaient simplement des paires valeur/clé de champs à valeur unique, cela pourrait être implémenté avec une table Sections et une table SectionFields. Mais en raison de la possibilité d'imbrication à travers des champs à valeurs multiples et des champs de type complexe, je crois que nous devrions aborder cela comme un système de type rudimentaire. Je ne pense pas qu'il a besoin d'héritage. Plutôt que de tout réinventer, je suppose que le travail a été fait dans les schémas pour les systèmes de types efficaces stockés dans la base de données. Des pensées/conseils?
Merci.
Salut Michael, merci d'avoir pris le temps de répondre. J'ai également écrit ceci sur l'autre réponse - Bien que les sections puissent être définies par l'utilisateur, elles sont systématiquement utilisées dans l'application par cet utilisateur. Et comme vous le dites, les blobs XML peuvent être la voie à suivre. –