2014-07-24 69 views
6

這種模式使我在重複數據和一般uglyness犧牲我想要的效果:Sails.js複合材料獨特的領域

//Example 
var Example = { 
    attributes: { 
     foo: { 
      type: 'string', 
      required: true 
     }, 
     bar: { 
      type: 'string', 
      required: true, 
     }, 
     baz: { 
      type: 'integer', 
      required: true, 
      min: 1 
     }, 
     foobar: { 
      type: 'string', 
      unique: true 
     } 
    }, 
    beforeValidation : function(values,cb) { 
     values.foobar = values.foo+values.bar; 
     cb(); 
    } 
}; 
module.exports = Example; 

有用於創建一個複合唯一鍵更好的策略?

+0

我也在尋找這個問題的答案,但在水線。你有沒有使用這種技術,併爲你工作?還是你使用了特定於數據庫的解決方案(不是我想要追求的)? – Charlie

回答

6

無法直接在帆中執行此操作,請參閱https://github.com/balderdashy/waterline/issues/221。最好的解決方案是直接在您打算使用的數據庫中執行此操作。

+0

在數據庫中這樣做的問題是,當您想要將複合主鍵作爲另一個表中的外鍵引用時,Waterline ORM將不會爲您執行任何操作。您將最終自己實現ORM的這一部分。在這種情況下,提問者的解決方案可能比在數據庫級實施更好。 –