orm2 中文文件 4.3 extendsTo(一對一關係)

飛龍發表於2016-01-10

譯者:飛龍

來源:extendsTo

你可能想把可選的屬性分割到另一個表中。每個擴充套件都會是一個新的表,其中每一行的唯一識別符號是主模型例項的id。

例如:

var Person = db.define("person", {
    name : String
});
var PersonAddress = Person.extendsTo("address", {
    street : String,
    number : Number
});

這樣會建立person表,帶有idname列。擴充套件行為會建立person_address表,帶有person_idstreetnumber列。Person模型中可用的方法類似於hasOne關聯。這個例子中,你可以呼叫.getAddress(cb).setAddress(Address, cb)以及其他。

注意:你並不需要儲存Person.extendsTo的返回值,它返回了一個擴充套件模型。你可以使用它來直接查詢擴充套件表(甚至查詢相關的模型),但是這完全取決於你。如果你只希望通過原模型來訪問它的話,可以丟棄返回值。

相關文章