2016-09-05 2 views
0

У меня есть существующая схема для профиля пользователя, который выглядит как:Подключение Mongoose схемы друг с другом

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 (? Ваш случай) - Поместите их в одной и той же схеме. Нам повезло не использовать реляционные db.

  2. Отношение 1: N, но на родителя будет предсказуемое и небольшое количество детей - также помещаем их в одну и ту же схему.

Примеры 2:

а. роли пользователя.

b. посетивших страны.

  1. отношение 1: N и может быть любое количество детей на родителя, и это не предсказуемо - используйте другую схему.

примеры 3:

а. пользовательские заказы.

b. история местоположений пользователя.

+0

Благодарим вас за проницательные объяснения. Для количества детей в любом заданном имуществе (вероятно, меньше 6) я ограничусь только одной схемой. – Jose

Смежные вопросы