Maison > Questions et réponses > le corps du texte
文章以及课程模型需要定义所属分类,该分类是多级的,MongoDB中怎么设计比较合理?如果直接定义在文档里,担心一致性的问题!
怪我咯2017-04-22 09:01:46
Collections ou documents intégrés dans MongoDB
Oui, des pensées spéciales liées
天蓬老师2017-04-22 09:01:46
Voici ce que j'ai fait :
{
'name': '苹果',
'category1': '生鲜',
'category2': '水果'
}
Facile à rechercher et à classer
怪我咯2017-04-22 09:01:46
Si le document intégré create/delete/update/
fonctionne fréquemment et qu'il existe des exigences de tri lors de la récupération des données, il est préférable d'avoir au plus trois niveaux et de ne pas l'intégrer trop profondément.
Maintenant, j'en ai trop de collection
intégrés, ce qui rend de nombreuses opérations très gênantes, je dois donc déployer beaucoup d'efforts pour les supprimer extract
.
Bien sûr, si vous ne souhaitez stocker des données qu'une seule fois et que les opérations sur les données consistent principalement à lire, vous n'avez pas besoin de trop réfléchir.
Comme le classement des articles de cours que vous avez proposé, si je comprends bien les exigences, cela peut-il être comme ça :
"_id":
"name" :
"category" : [
{
"_id" :
"name" :
"degree" :
},
{
"_id" :
"name" :
"degree" :
},
]
degree
représente le niveau dans la catégorie du cours De cette façon, la catégorie d'un article dans le cours est lue en fonction de degree
lors de la lecture. Par exemple, un article s'intitule « Deuxième loi de Newton » et sa classification de cours est (Physique -> Force). Enregistrez-le ensuite sous :
"_id":
"name" :
"category" : [
{
"_id" :
"name" : '物理'
"degree" : 1
},
{
"_id" :
"name" : '力'
"degree" : 2
},
]
Lors de la lecture des données, appuyez sur category
et degree
pour sort
.
伊谢尔伦2017-04-22 09:01:46
Il s'agit en fait d'un compromis de conception, et cela n'a rien à voir avec mongdb. Même MySQL doit encore réfléchir à ce problème !
Personnellement, je pense qu'il faut encore partir du point de vue métier et se demander si les données métiers à analyser répondent aux contraintes, par exemple si elles nécessitent une cohérence temps réel ou une cohérence finale.
À un autre niveau, pour mongdb lui-même, ses documents intégrés ne sont pas très différents des documents ordinaires. Cependant, si le document intégré que vous souhaitez ajouter change fréquemment, surtout s'il n'y a pas de limite de taille, vous devriez le faire. utilisez toujours l'association. Plus approprié!
ringa_lee2017-04-22 09:01:46
Définissez simplement la catégorie comme un document imbriqué car vous ne la mettrez pas souvent à jour.