我還沒有看到支持繼承的SQL數據庫的ORM。即使這樣,我相信還有其他感謝的機會,JS的性質,你可能會喜歡(我肯定做):
使用jugglingdb(一個我會建議),加上underscore.js(這是大多數Node.js的程序員應該注意),你可以這樣做以下:
var user_common_properties = {
name: String,
bio: Schema.Text,
approved: Boolean,
joinedAt: Date,
age: Number
};
var User = schema.define('User', user_common_properties);
var Moderator = schema.define('Moderator', _.extend(user_common_properties, {
power : String,
level : Number
}));
var Reader = schema.define('Moderator', _.extend(user_common_properties, {
lurker : Boolean
}));
雖然我同意這是不一樣的,沒有理由認爲這種糟糕:)我認爲這是非常的JavaScript等。
此外,如果你想重新使用方法/驗證,你可以!只需將它們分配給它們(重新使用這些函數),或者如果您想重新使用一堆函數,請將它們添加到對象中,然後擴展Reader和Moderator對象。例如...
var repeated_methods = {
first : function() { },
second: function() {}
};
//I want to reuse this for both User and Moderator but not for Reader...
User = _.extend(User, repeated_methods);
Moderator = _.extend(Moderator, repeated_methods);
這是非常靈活的,並允許has-a關係(行爲),這對橫向重用很有用。
這聽起來像個好主意。我絕對會試試這個! –