0
votes

Créez une base de données pour stocker le nom du module avec ITER_MODULE_ID

ok j'ai une table, où je stocke des noms de tous les modules ou programmes, un peu comme celui-ci xxx pré>

maintenant, je veux stocker le module parent de tous les modules tels que nous devons que nous ayons besoin de avoir Nodejs code> installé pour commencer à utiliser ionic code> ou pour tensorflow code> Nous devons avoir python code>. Maintenant, j'avais deux j'ai inclus une colonne nommée parent_id code> qui était étrangers_key code> référencement id code> de la même table. P> xxx

Cela m'a aidé à donner aux parents la possibilité d'avoir plusieurs enfants, comme Nodejs avaient deux enfants angulaires et ioniques. P>

J'utilise la séquelle et j'ai configuré l'association comme une association régulière. xxx pré>

la sortie est quelque peu comme suit: p> xxx pré>

ce qui était assez attendu, mais je veux obtenir le tableau des modules parents à l'intérieur Les entiers enfants, un peu comme ceci: p> xxx pré>

Je sais que je peux changer la colonne parent_id code> sur ID enfant code> Modules de carte de manière opposée mais qui exclut la possibilité d'un parent ayant plusieurs enfants et ne montrera qu'un enfant par parent. p> xxx pré>

alors comment peut atteindre la sortie souhaitée et quelle modification besoin de faire dans les associations ou la structure de la table entière en incluant une troisième table qui aura deux références de clé avant La même table, un peu comme ça, mais cela n'a pas l'air si conventionnel, ni d'être honnête, je n'ai jamais vu de choses comme ça avant donc je ne suis pas tout à fait sûr si cela est correct ou non. P>

  +-------------------------------------------------
  |                                     |          |
+----+----------------+        +----+---------+----------+
|id  |module          |        |id  |child_id |parent_id |
+----+----------------+        +----+---------+----------+
|1   |node js         |        |1   | 3       | 1        |
+----+----------------+        +----+---------+----------+
|2   |python          |        |2   | 4       | 1        |
+----+----------------+        +----+---------+----------+
|3   |angular         |        |3   | 5       | 2        |
+----+----------------+        +----+---------+----------+
|4   |ionic           |        |4   | 6       | 2        |
+----+----------------+        +----+---------+----------+
|5   |tensorflow      |
+----+----------------+
|6   |jupyter notebook|
+----+----------------+


0 commentaires

3 Réponses :


0
votes

J'espère que vous avez besoin d'une association auto-référencée.

let modules = await models.Module.findAll({
    include: [{
      model: models.Module,
      as:'sub_entry'
    }]


1 commentaires

Ce que vous avez suggéré est déjà arrivé comme je l'ai mentionné dans ma question, mais ce n'est pas le résultat souhaité



2
votes

Vous pouvez créer une table de nombreux à plusieurs à plusieurs personnes comme celle-ci: -

Créer une langue de table ( lng_id int pas null, lng_name varchar (40) non null, Description Varcharchar (100) Not Null, Image blob non nulle, Touche principale (LNG_ID)

Créer une table de dépendance_lng ( lng_id1 int pas null, // fk lié à la langue.lng_id lng_id2 int pas null), // fk lié à la langue.lng_id Contrainte pk_dependency_lng clé primaire (lng_id1, lng_id2)

Vous pouvez ajouter alors autant d'entrées que vous le souhaitez sur le côté des clés étrangères si votre exigence exige.

P.s: --- également si vous le souhaitez, la colonne d'incrémentation automatique n'est pas nécessaire. La clé primaire peut être (lng_id1, lng_id2)


0 commentaires

0
votes

Association auto-référencée aura fonctionné

[{id: 1, module: 'node js', Module: []},
 {id: 2, module: 'python', Module: []},
 {id: 3, module: 'angular', Module: [
    {id: 1, module: 'node js'}
  ]},
 {id: 4, module: 'ionic', Module: [
    {id: 1, module: 'node js'},
  ]},
 {id: 5, module: 'tensorflow', Module: [
    {id: 2, module: 'python'},
  ]},
 {id: 6, module: 'jupyter notebook', Module: [
    {id: 2, module: 'python'},
  ]}]


0 commentaires