Question

J'ai un script qui génère des scripts DDL pour définir des vues matérialisées pour une base de données normalisée. Certaines tables ont des colonnes comme « propriétaire » qui pointent vers un utilisateur de base de données particulière, que je peux ensuite créer des vues pour cela afficher uniquement les lignes d'une table que l'utilisateur de la base de données actuelle créée. De telles opinions dans certains cas, seraient bénéfiques à la fois du point de vue de la sécurité et de commodité -. Par exemple, ne montrant que ses propres résultats du quiz à choix multiples

La chose est, à part une poignée de tables, il y a beaucoup de tables où je pourrais imaginer quelqu'un demander un tel point de vue, mais ne peut pas penser un cas d'utilisation concrète. Cependant, je pense que, parfois, cette fonctionnalité générale peut être utile, parce que je ne peux pas toujours prévoir tous les cas d'utilisation.

Ma question est, combien de ces vues personnalisées dois-je prendre la peine de générer automatiquement? Pour plusieurs centaines de tables, cela ajoute une bonne partie du temps à la construction, les tests et les processus d'analyse comparative, automatisés bien qu'ils soient. Voulez-vous pécher par excès de fonctionnalités supplémentaires qui ne peut jamais être utilisé, ou sur le côté d'avoir disponible uniquement les points de vue qui ont été demandé / que vous savez sera utile?

Était-ce utile?

La solution

Ceci est une bonne question à se poser - est générale (;-) généralement une bonne chose, mais que vous observez peut vous jeter surgénéralisation dans une explosion combinatoire. Pouvez-vous organiser éventuellement pour les bits nécessaires de DDL à générer « juste à temps » lorsqu'un utilisateur tente d'utiliser le (en gardant bien sûr une « cache » des bits qui ont déjà prouvé utile)?

Si c'est juste impossible, alors, compte tenu de la possibilité de la stratégie « potentiellement vues utiles » croître de façon exponentielle dans le nombre de tables et de colonnes, je contrecœur choisir le « faire que ce qui est connu pour être utile / désirée » (et efforcer de le rendre très facile pour les utilisateurs de me faire savoir quand ils ont besoin de moi d'ajouter quelque chose de plus ...).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top