2016-09-05 128 views
0

我有一個現有的架構,看起來用戶簡檔,如:連接貓鼬架構彼此

const userSchema = new mongoose.Schema({ 
    email: { type: String, unique: true, lowercase: true }, 
    password: { type: String }, 
    name: { 
    first: { type: String, required: true }, 
    last: { type: String, required: true } 
    } 
}); 

我的問題是:我可以創建保存用於事件註冊屬性(諸如類型的通行證另一個模式用戶正在付款,地址,聯繫電話等)具體的信息,而不是它連接到userSchema?或者將所有信息放入userSchema會更有效?

實施例登記模式:

const registrationSchema = new mongoose.Schema({ 
    pass: { type: String }, 
    address: { type: String }, 
    phone: { type: String }, 
    paid: { type: Boolean, default: false }, 
    shirt: { type: Boolean, default: false } 
}); 

感謝。

回答

1

有三種情況

  1. 實體之間的關係是1:1(?你的情況下) - 把它們在同一個模式。我們很幸運,不使用關係數據庫。

  2. 的關係是1:N,但會有每個單親家庭子女可預測的,而不是大量的 - 也把他們在同一個模式。的2

實例:

一個。用戶角色。

b。用戶訪問了國家。

  1. 該關係爲1:N,並且每個父項可以有任意數量的子項並且不可預測 - 使用不同的模式。的3

例子:

一個。用戶訂單。

b。用戶位置歷史。

+0

謝謝你的精闢解釋。對於任何特定屬性(可能少於6個)中的兒童數量,我將限制自己僅限於一個模式。 – Jose