我正在使用strongloop loopback创建一个API。
我已经定义了我的模型,基本上一切都很好。 但是我在理解环回如何处理关系时遇到了问题。
并非我所定义的所有关系似乎都真正反映在数据库和界面中。
例如,我有一个模型public Mob(Level lvl, String nm, int x, int y, int spd) {
super(lvl);
name = nm;
this.x = x;
this.y = y;
speed = spd;
}
,它是
song
hasAndBelongsToMany albums
hasAndBelongsToMany playlists
hasAndBelongsToMany userplaylists
以下是belongsTo artist
/common/models/song.json
但是当我查看生成的postgresql表时,我看到了:
{
"name": "song",
"plural": "song",
"base": "PersistedModel",
"idInjection": true,
"properties": {
//some more properties of song
},
"validations": [],
"relations": {
"albums": {
"type": "hasAndBelongsToMany",
"model": "album",
"foreignKey": ""
},
"artist": {
"type": "belongsTo",
"model": "artist",
"foreignKey": ""
},
"playlists": {
"type": "hasAndBelongsToMany",
"model": "playlist",
"foreignKey": ""
},
"userplaylists": {
"type": "hasAndBelongsToMany",
"model": "userplaylist",
"foreignKey": ""
}
},
"acls": [],
"methods": []
}
因此,localhost:3000 / explorer中的loopbacks explorer中的接口说:
title | character varying(1024) | not null
id | integer | not null default nextval('song_id_seq'::regclass)
#some other properties of song
artistid | integer |
问题:还不应该有歌曲,播放列表和用户播放列表变量???或者我在NoSql世界中工作太多,现在我忘了如何处理关系?
顺便说一句。我有一个迁移脚本,我在将关系添加到模型时执行:
post /song
Response Class
Model
Model Schema
{
"title": "",
//some other properties of song
"id": 0,
"artistId": 0
}
答案 0 :(得分:0)
通常相关数据有外键:
客户 订单属于客户,因此订单包含一个包含客户ID的列。
请注意,每个更改模型都必须通过自动更新脚本与数据库同步。
module.exports = function(app) {
var ds = app.dataSources.pg;
ds.isActual('mymodel', function(err, actual) {
if (!actual) {
ds.autoupdate('mymodel', function(err, result) {
console.log("AUTOUPDATE mymodel",err,result);
});
}
});
};