天天看點

orm2 中文文檔 4.3 extendsTo(一對一關系)

譯者: 飛龍 來源: extendsTo

你可能想把可選的屬性分割到另一個表中。每個擴充都會是一個新的表,其中每一行的唯一辨別符是主模型執行個體的id。

例如:

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

這樣會建立

person

表,帶有

id

name

列。擴充行為會建立

person_address

person_id

street

number

列。

Person

模型中可用的方法類似于

hasOne

關聯。這個例子中,你可以調用

.getAddress(cb)

.setAddress(Address, cb)

以及其他。

注意:你并不需要儲存

Person.extendsTo

的傳回值,它傳回了一個擴充模型。你可以使用它來直接查詢擴充表(甚至查找相關的模型),但是這完全取決于你。如果你隻希望通過原模型來通路它的話,可以丢棄傳回值。