Model sailsjs中一个属性上的不同模型

Model sailsjs中一个属性上的不同模型,model,sails.js,Model,Sails.js,我目前正在Sails.js应用程序中设置模型,并想知道是否有可能很好地解决我的小问题: 所以我想表达以下关系: 文档具有(模型)类型A或类型B的内容。 有没有一种方法可以在不将类型a和B合并到一个大模型中或在文档模型上为每个类型添加一个属性的情况下表达这一点? 对于模型而不是字符串(如果可能的话),可能类似于enum 或者我必须通过一个唯一的ID进行查找,如: //模型文档 module.exports={ 内容类型:{ 键入:“字符串”, 要求:正确, 枚举:['typeA','typeB']

我目前正在Sails.js应用程序中设置模型,并想知道是否有可能很好地解决我的小问题:

所以我想表达以下关系:
文档具有(模型)类型A或类型B的内容。 有没有一种方法可以在不将类型a和B合并到一个大模型中或在文档模型上为每个类型添加一个属性的情况下表达这一点? 对于模型而不是字符串(如果可能的话),可能类似于
enum

或者我必须通过一个唯一的ID进行查找,如:

//模型文档
module.exports={
内容类型:{
键入:“字符串”,
要求:正确,
枚举:['typeA','typeB'],
},
contentID:{
键入:“整数”,
必填项:true
},
}
//A型
module.exports={
身份证:{
键入:“整数”,
自动递增:真
},
标题:{
键入:“字符串”,
必填项:true
},
正文:{
键入:“字符串”,
必填项:true
},
}
理想情况下,我只想写:

//模型文档
module.exports={
内容类型:{
型号:['typeA','typeB'],
},
}

或者类似的(如果可能的话)

如果没有任何应用程序逻辑,它是无法完成的。因为SQL(也叫Sails/水线关系)模型是使用
表到表的关系。NoSQL
graph db
中提供了您的记录到记录的关系,例如Neo4j、TitanDB等。当然,Waterline(目前)仍然无法将其集成。

目前没有办法做到这一点,您当前使用的方法是我在放弃多属性方法(虽然有效,但管理起来非常烦人)后最终确定的方法

但是,如果您的模型(typeA和typeB)是轻型的,并且您仍然希望将它们存储在同一属性下,则可以按如下方式声明a:

//model Document
function isTypeA(content) {
    //check if content is a valid typeA object
}
function isTypeB(content) {
    //check if content is a valid typeB object
}
module.exports = {
    types: {
        typeAOrTypeB: function(content){
            return isTypeA(content) || isTypeB(content);
        }
    },
    attributes: {
        contentType: {
            type: 'string',
            enum: ['typeA', 'typeB']
        },
        content: {
            type: 'json',
            typeAOrTypeB: true
        }
    }
}
(如果
内容
的详细程度适中,我仍然希望采用多模型方法。)