Sono nuovo di Sequelize e sto cercando di capire come devo modellare la relazione uno-a-molti.Come modellare l'associazione uno a molti in sequelize?
Il mio problema è il seguente: un termine, molti documenti.
var Term = sequelize.define('Term', ...);
var Paper = sequelize.define('Paper', ...);
Supponiamo di avere un termine. Ogni termine può avere molti documenti e vorrei aggiungere/rimuovere documenti per il mio mandato. Mi piacerebbe anche avere tutti i documenti per il termine.
var term;
...
term.getPapers(...);
term.setPapers(...);
term.addPaper(paper);
term.removePaper(paper);
Ora, supponiamo di avere un foglio. Mi piacerebbe ottenere/impostare il termine per il mio articolo.
var paper;
...
paper.getTerm();
paper.setTerm();
Come può essere ottenuto utilizzando il sequelize? Ho studiato documenti per ore e anche alla ricerca di alcune colle in rete, ma senza risultati. Trovo questo tipo di associazione molto poco documentato in sequelize (uno a uno e molti a molti sono molto meglio).
Aggiornamento:
Va bene, parecchie ore più tardi ho lavorato come funziona:
Term.hasMany(Paper, { as: 'papers' });
Paper.hasOne(Term);
Ora possiamo fare:
term.addPaper(paper);
term.removePaper(paper);
paper.getTerm()
.success(function(term)
{
...
});
paper.setTerm(term);
ho sono abituato a Django, e sembra che Sequelize sia FAR meno maturo, sia in termini di codice che di documentazione ...
Sono d'accordo, le associazioni di Sequelize sono estremamente contro-intuitivo per me e la documentazione non aiuta. grazie per aver postato questo. –
Sei sicuro che 'Paper.hasOne()' è un tipo di associazione corretto in questo caso? Non dovresti usare 'Paper.belongsTo()'? Ciò ha più senso secondo i documenti. –
Non sono d'accordo perché non penso che il one-to-one e il many-to-many siano migliori .. La documentazione è così strana. Non spiega nemmeno i parametri e restituisce i valori dei metodi creati dalle associazioni. grazie per aver postato questo. : D (Dopo qualche lettura, ora penso che @SlavaFominII abbia probabilmente ragione) – SCLeo