【问题标题】:custom waterline join table自定义水线连接表
【发布时间】:2016-08-13 07:23:48
【问题描述】:

有一个存储所有可用语言的语言模型。 语言:

attributes: {
    language: {
        type: 'string',
        required: true
    },
    combinations: {
        type: 'array'
    }
}

简历模型:

user: {
        model: 'User',
        required: true
    },
    language: {
        model:''
        required: false,
        through: 'resumelanguage'
    }

现在我需要将这两个链接在一起,这样一份简历就可以包含一组语言,并且这个链接应该有另一个属性;说rank

我该怎么做?

【问题讨论】:

    标签: node.js sails.js schema waterline


    【解决方案1】:

    如果您希望简历有多种语言,您必须在其模型中添加collection 属性。

    // /models/Resume.js
    attributes {
    
        // Other attributes here
    
        user: {
            model: 'user',
            required: true
        },
        languages: {
            collection:'language',
            via: 'resume'
        }
    };
    

    现在如果你想要One-to-Many 关系,语言模型必须有model 属性

    // /models/Language.js
    attributes: {
        language: {
            type: 'string',
            required: true
        },
        combinations: {
            type: 'array'
        },
        resume : {
          model: 'resume'
        }
    }
    

    如果你想要Many-to-Many 关系,语言模型也必须有collection 属性

    // /models/Language.js
    attributes: {
        language: {
            type: 'string',
            required: true
        },
        combinations: {
            type: 'array'
        },
        resumes : {
          collection: 'resume',
          via: 'languages'
        }
    }
    

    -- 编辑--

    或者您可以在两个表的“链接”表(例如:LanguageResume)上使用一对多关系。然后你可以将其他属性添加到“链接”表中

    // /models/LanguageResume.js
    attributes: {
        languages: {
          collection: 'language',
          via: 'resumes'
        },
        resumes : {
          collection: 'resume',
          via: 'languages'
        },
    
        rank: {
            type: 'integer'
        },
    
    }
    

    【讨论】:

    • 请编辑您的答案以解释您的代码的作用以及它如何解决问题。教导的答案比没有解释的代码有用得多。
    • 对不起。我写了一些东西,但它不再在这里了。发生了什么?
    • 你错过了我的部分问题。 about 包括其他属性,例如“链接”的排名。也许你可以指定一个连接表?
    猜你喜欢
    • 2015-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-18
    • 2014-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多