Lorsque vous avez trop de tables?
Deux de mes collègues et moi sommes de la construction d'un système pour faire toutes sortes de l'hydrologie et les choses liées. Il a beaucoup de besoins et d'avoir un bon nombre de tables.
Nous nous occupons de toutes sortes de l'échantillonnage que c'est fait à l'intérieur de ce champ d'application (hydrologie) et nous essayons de trouver un moyen de le faire de moins en moins la douleur.
Parfois nous avons besoin pour obtenir tout ce que l'échantillonnage ensemble et je commence à penser que nous sommes au-dessus-ce qui complique notre conception de base de données.
Quand ou comment savez-vous que vous êtes plus que la conception d'une base de données? Bien sûr, nous envisageons de beaucoup de la Forme Normale d'autres Règles et bonnes pratiques, mais quand c'est OK pour déposer l'une de ces règles, par exemple, ne pas normaliser quelque chose?
Quelles sont vos opinions à ce sujet?
- "Normaliser jusqu'à ce que ça fait mal, pour éliminer jusqu'à ce qu'il fonctionne." : codinghorror.com/blog/archives/001152.html
- Êtes-vous à l'aide de l'ORM ou SQL directe pour y avoir accès? J'ai trouvé que l'utilisation de l'ORM, en particulier pour persister les informations qui peuvent être hiérarchiques et est représenté au moment de l'exécution comme une hiérarchie de classe, elle se prête à un grand nombre de tables. Si j'avais de manipuler manuellement, ce serait horrible.
Vous devez vous connecter pour publier un commentaire.
Réponse Courte
Vous ne pouvez pas vous soucier de quelque chose d'autre.
Réponse Longue
Cela sonne comme encore une autre forme de l'optimisation prématurée. (YAFPO?)
Vous devez concevoir votre schéma à l'aide de troisième forme normale (3FN). Une fois conçu, vous devez remplir vos tables avec les données du profil.
Si une requête particulière est jugé trop coûteux, alors vous devriez regarder dans dénormalisation de l' sur une base de cas par cas.
Réponse technique (pour le nitpickers qui sera inévitablement opposer: "vous ne pouvez pas")
Vous permettra d'atteindre une limite à un certain point, selon votre choix de SGBDR et/ou moteur de stockage. Probablement que les plafonds seront consommation de mémoire ou de descripteurs de fichiers ouverts.
Nous avons un système avec des centaines de tables - son, pas grand-chose, c'est juste que beaucoup de choses différentes, sont stockés dans la base de données.
"Quand vous avez trop de tables?"
Au niveau de la conception logique, la bonne réponse est "jamais".
Au niveau de la conception physique (dans la mesure où "avoir une table" vraiment se réfère à un concept qui se rapporte à la conception physique), la bonne réponse est "si et quand les requêtes que vous avez besoin à faire, étant donné les restrictions du SGBD que vous utilisez, sont à l'origine de rendement trop faible.".
Nous avons une tonne de tables dans notre système. Ce que nous avons fait a été de normaliser la base de données à un bon point, puis il a créé quelques points de vue qui englobent la plupart des communes de la table aux besoins d'utilisation de notre système. Quelque chose comme cela puisse vous aider.