两个模型之间是否可能存在单边一对多的关系?
我想要实现的是一个插件架构,核心应用服务器有一组基本模型,但不同客户端的具体实现可以包括自定义数据插件。
所以我有一个核心Entity
(超简化)的概念:
{
identity: 'entity',
attributes: {
id: 'integer',
type: 'string'
}
}
好的,现在我要添加一个Passport
插件来存储登录凭据。
{
identity: 'passport',
attributes: {
id: 'integer',
protocol: 'string',
username: 'string',
password: 'string',
entity: {
model: 'Entity'
}
}
}
到目前为止一切顺利。现在我想添加一个User
插件,User
有效地扩展Entity
,但User
可以拥有多个护照。所以这就是我先试过的:
{
identity: 'user',
attributes: {
id: 'integer',
name: 'string',
email: 'string',
entity: {
model: 'Entity'
},
passports: {
collection: 'Passport',
via: 'entity'
}
}
}
现在水线中的事情已经不复存在了(但它是一个非常合理的数据模型)。这是错误:
Trying to associate a collection attribute to a model that doesn't have a Foreign Key. user is trying to reference a foreign key in passport
练习的重点是Entity
是一个相当抽象的概念,像Passport
之类的东西应该添加行为而不必具体知道具体实现是什么(User
) 好像。因为我想要一个插件架构,Passport
无法明确了解User
。
否则它将是一个非常优雅的解决方案。有没有办法诱使Waterline做我想做的事情?感谢。