Relación uno a muchos en CompoundJS
Soy nuevo en CompoundJS y tuve un problema al configurar una relación de uno a muchos con malabaresDB. Estoy usando MySQL como base de datos.
He creado dos modelo de libro y autor.
El libro tiene muchos autores.
Este es mischema.js
(db / schema.js):
var Book = describe('Book', function () {
property('title', String);
property('isbn', String);
property('authorId', Number);
set('restPath', pathTo.books);
});
var Author = describe('Author', function () {
property('name', String);
property('authorId', Number);
set('restPath', pathTo.authors);
});
Pongo la relación en los modelos / Book.js. Este es miBook.js
(modelos / Book.js):
module.exports = function (compound, Book) {
Book.hasMany(compound.models.Author, {as: 'author', foreignKey: 'authorId'});
};
Este es miAuthor.js
(modelos / Autor.js):
module.exports = function (compound, Author) {
Author.belongsTo(compound.models.Book, {as: 'books', foreignKey: 'authorId'});
};
El problema es que no puedo crear estas relaciones. Cuando verifico la tabla no hay clave externa establecida en la tabla.
Quito la relación de los modelos Book.js y Author.js y coloco la relación en el esquema.js mismo.
Después de eso el schema.js se ve así:
var Book = describe('Book', function () {
property('title', String);
property('isbn', String);
property('authorId', Number);
set('restPath', pathTo.books);
});
var Author = describe('Author', function () {
property('name', String);
property('authorId', Number);
set('restPath', pathTo.authors);
});
Book.hasMany(Author, {as: 'author', foreignKey: 'authorId'});
Author.belongsTo(Book, {as: 'books', foreignKey: 'authorId'});
pero el resultado es el mismo.
¿Hay algún problema en el código anterior? Si es así, ¿cómo puedo resolver eso?