Le menu principal est le genre de système de gestion en arrière-plan où vous pouvez contrôler s'il faut afficher un certain menu ou une certaine fonction dans un certain menu via la configuration.
Concernant sa conception et sa mise en œuvre, mon résumé personnel est le suivant.
(1)
Enregistrer avec une table de base de données
Généralement, le menu principal est une arborescence. Il existe deux solutions basées sur l'enregistrement avec une base de données relationnelle traditionnelle.
(1-1)
En utilisant une solution de table, la table contient un identifiant et un parentid pour associer la relation parent-enfant.
(1-2)
En utilisant une solution à deux tables, une table est utilisée pour enregistrer la relation parent-enfant du menu, et l'autre table enregistre uniquement les informations du menu.
Il existe également 2 solutions de transmission de données :
(1-1-1)
Le backend interroge les données et les construit via la boucle de code d'arrière-plan, ou utilise des transactions SQL pour construire la structure arborescente, puis la transmet au frontend
(1-1-2)
Le backend interroge les données et les transmet au frontend, permettant au frontend de construire lui-même l'arborescence
(2)
Enregistrer en json
C'est la principale façon dont je veux en savoir plus sur ce problème. Je ne sais pas si vous l'avez déjà utilisé. Ensuite, construisez directement les informations sur les nœuds parent et enfant du menu principal au format json et enregistrez-les. dans une table de configuration ou un fichier json. Cela vous évite d’avoir à construire une structure arborescente. Cependant, comme il s'agit d'un format json pur, la maintenance manuelle est acceptable si la structure des données n'est pas complexe. Si vous rencontrez une situation complexe, vous devrez peut-être écrire une interface de maintenance pour la maintenir, car json n'en a pas. une syntaxe de requête similaire à sql, le front end (En supposant qu'il s'agisse de js) Il sera particulièrement compliqué d'écrire des ajouts, des suppressions et de vérifier les modifications (surtout les suppressions).
Ceci. . . . Je ne sais pas quelle méthode vous utilisez habituellement ? Si possible, j'espère que vous pourrez en parler brièvement.
En même temps, si vous avez des avis sur(2)用json保存
cette méthode, vous pouvez également en parler.
Considérant les performances, l'évolutivité, la maintenabilité, etc.
La solution doit être choisie en fonction de la technologie. Quant aux deux solutions que vous avez proposées, la première est plus adaptée à la mise en œuvre de bases de données relationnelles et la seconde est plus adaptée à la mise en œuvre de bases de données NoSQL.
En résumé, la première solution est recommandée. L'aplatissement de la structure du menu sera plus pratique lors de la conception ultérieure des utilisateurs, des groupes d'utilisateurs, des autorisations et d'autres modules. Utiliser des solutions JSON pour effectuer ces opérations sera plus compliqué.