2009-04-17 6 views
0

Pour clarifier, Disons que j'ai des utilisateurs et des utilisateurs dans ma base de données et j'ai aussi des informations comme la ville, l'état, le comté et la région associés à ces deux tables. Dans ce scénario, je peux facilement retransmettre facilement mes états de lieux aux niveaux de la ville, de l'état, du comté et de la région par un processus de nuit ou incrémental.Comment concevoir efficacement des hiérarchies dynamiques dans un modèle de schéma de données?

Le scénario alternatif où je n'ai pas des groupes fixes comme ville, état, comté, mais je veux certains super utilisateurs d'avoir la possibilité de créer leurs propres groupes et lier manuellement les utilisateurs sous la forme suivante:

User1| 
User2| - group1 
User3| 
       -> group3 
User4| 
User5| - group2 
User6| 

de plus, je peux encore continuer à avoir ma ville, état, des groupes de comté comme celui-ci:

User1| 
User4| - city1 
User3| 
       -> county1 
User4| 
User5| - city2 

y at-il un modèle de base de données connue qui peut être utilisé pour rouler efficacement des données associées à ces différents seaux? Une sorte de modèle de marquage?

S'il vous plaît laissez-moi savoir Si je ne suis pas clair, je peux plus de détails pour clarifier.

D'autres précisions:

Je veux retrouver un rapport pour les clics des utilisateurs par pays, et je peux poursuivre drilldown 2 niveaux en état et la ville. Maintenant, disons que j'ai la possibilité de créer mes propres groupes (via l'interface utilisateur) et maintenant je vais pouvoir créer de nouvelles régions qui ont des villes de différents états. Maintenant, mon rapport peut afficher les clics de l'utilisateur par pays, puis je peux explorer les régions personnalisées (groupe de villes). Toutes les analyses comme les clics de l'utilisateur, divers avg doivent maintenant être recalculés en fonction des nouveaux groupes.

+0

Une clarification supplémentaire serait bien, oui. Pour être précis, plus de détails seraient bons; c'est un peu difficile de savoir vraiment de quoi tu parles. –

+0

Ajout de plus d'informations. Cela aide-t-il? –

Répondre

3

Jetez un oeil à nested sets ou des listes d'adjacence (également dans le même article). Ils ont leurs plus et moins ...

+0

Les ensembles imbriqués peuvent devenir complexes à maintenir s'ils ne sont pas bien documentés, mais je suis d'accord avec vous. Cela peut être une solution possible. +1 –

+0

Cela est-il toujours pertinent maintenant nous avons des expressions de table communes? Ou plutôt, les inconvénients de l'utilisation de la liste d'adjacence sont atténués par les CTE et, par conséquent, la maintenance des ensembles imbriqués les rend moins utiles. – BenCr

0

Cela ressemble à ma question sur user defined hierarchical data models, peut-être les réponses seraient utiles.

+0

avez-vous mis en œuvre l'un des modèles proposés? –

+0

Je suis allé avec la suggestion d'Adam Robinson (la réponse acceptée), il semble bien fonctionner jusqu'à présent, bien que j'apprécie qu'il pourrait être un peu différent de ce que vous cherchez – ninesided

0

Votre logique est en erreur. Les villes, les comtés, les États ne sont pas hiérarchiques - une seule ville peut exister dans différents comtés, etc.

Questions connexes