Je prévois de travailler avec Dapper.NET pour un site familial.
Un grand nombre de données de type arbre seront présentes dans la structure. Quelle base de données fournit les meilleures requêtes pour travailler avec des relations arborescentes / cycliques?
Je veux connaître la comparaison facile et performante des requêtes hiérarchiques. c'est à dire. comme CTE dans SQL Server, Connect By / Start avec Oracle, etc.
Dapper est-il le meilleur choix en tant que Micro ORM pour ce type de données structurées en arborescence?
J'ai besoin d'avis pour choisir la bonne base de données et le bon Micro ORM pour cela.
Désolé pour mon mauvais anglais.
Ma question est toujours la même: combien de données attendez-vous?
Mais en dehors de cela, il n’ya pas que le type de base de données que vous choisissez pour vos données, mais aussi la structure des tables. Les arbres hiérarchiques peuvent être stockés de différentes manières en fonction de vos besoins.
Les structures particulières peuvent être très rapides sur les lectures de traversée, mais lentes sur les insertions / mises à jour (ie les ensembles imbriqués ), d'autres (listes de contiguïté) dans l'autre sens. Pour un ratio lecture / écriture de 99: 1 (la grande majorité des applications d’aujourd’hui lit beaucoup plus que l’écriture), je choisirais probablement une structure de groupe imbriquée modifiée comportant gauche, droite, profondeur et parent. Cela vous donne la meilleure possibilité pour lire des scénarios.
À moins que vous ne visiez des quantités énormes de données, je vous conseille d'utiliser toutes les bases de données SQL que vous connaissez le mieux (MSSQL, MySQL, Oracle). Mais si votre base de données contient un nombre énorme de noeuds de hiérarchie, flirtez avec une base de données spécialisée orientée graphique peut être une meilleure option.
Si vous souhaitez être opter pour une solution ensemble imbriqué modifiée (également en utilisant des valeurs négatives, donc nombre de mises à jour sur les moitiés d' insertion / mise à jour) vous auriez table de hiérarchie ayant left
. right
colonnes right
, ID
et ParentID
qui donneraient une table d'environ 1,2 Go. Mais c'est votre estimation après au moins deux ans d'utilisation.
Passez à la vitesse supérieure - N'ingéniez pas trop en utilisant la meilleure base de données possible pour stocker votre hiérarchie s'il s'avère que ce n'est pas nécessaire après tout. Par conséquent, je vous suggère d’utiliser initialement une base de données relationnelle pour pouvoir accéder rapidement au marché, même si la solution commence à se heurter à des millions d’enregistrements. Mais avant que votre base de données commence à se débattre (nous parlons des années ici), vous gagnerez deux choses: