2016-06-15 2 views
2

Я посмотрел влево и вправо, я написал демо-код, написал несколько тестов для внедрения системы управления школами.Рекомендации по созданию документа с неизвестным количеством элементов в поле

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

Я сделал свое решение, но не знаю, является ли это самым изящным и осуществимым способом, я хочу получить мнение от опытных людей.

Следует ли создавать отдельные модели для адресов, адресов электронной почты и телефонов?

Я создал эту схему. У этого все еще есть некоторый псевдокод, но для того, чтобы дать общую идею, это прекрасно.

var student = { 
    name: String, 
    surname: String, 
    currentClass: { 
     type: mongoose.Schema.Types.ObjectId, 
     ref: "Classes" 
    }, 
    birthday: { 
     year: Number, 
     month: Number, 
     day: Number 
    }, 
    address: [{ 
     name: String, 
     zip: Number, 
     address: String, 
     city: String, 
     state: String, 
     complement: String 
    }] 
    accountable: { 
     name: String, 
     surname: String, 
     email: [{ 
      type: String, 
      required: true, 
      lowercase: true 
     }], 
    phone: [String, String] 
} 

Моего гуманного был, с помощью HTML, создавая новую «электронную почту» или «адрес» поля, как запрошенный clickinking в кнопке Проппера пользователя. Это сгенерировало новое поле ввода с именем, которое следовало с таким шаблоном, как: email1, email2, email3, email4

Итак, когда пользователь отправил данные, если бы мы создавали нового ученика, я бы сначала создал массив с данными и отправить его в мангуст.

В случае обновления, я хотел бы получить уже созданные электронные письма и добавить его в новом массив с newEmails.concat(old_emails)

ответ

1

Для разработки базы данных, существует много ситуаций, для этого: 1 до 1, 1 ко многим , многие для многих.
Один к одному: вы должны поставить сильный объект внутри другого, например:
человек может иметь только один паспорт, тогда мы должны поместить паспортный объект внутри объекта человека. От одного до многих, 3 случая для одного для многих.
От одного до нескольких: немногим меньше 100 объектов. Затем вы должны добавить несколько как список в один объект, например: Человек может иметь несколько адресов, как в вашем примере выше.
От одного до многих: много тысяч, тогда вы должны поместить первичные ключи многих из списка внутри одного объекта. От одного до слишком большого числа: тогда не делайте предыдущего решения, а вместо этого добавляйте первичный элемент в каждый объект из множества.
И, наконец, Многим многим: вы должны поместить их в список в обе стороны.
Проверьте приведенные ниже ссылки:
https://www.mongodb.com/blog/post/6-rules-of-thumb-for-mongodb-schema-design-part-1
https://www.mongodb.com/blog/post/6-rules-of-thumb-for-mongodb-schema-design-part-2
https://www.mongodb.com/blog/post/6-rules-of-thumb-for-mongodb-schema-design-part-3


Morover, для этой части phone: [String, String], вы должны сделать это phone: [String]

+0

Спасибо большое ... в то время я был довольно новым для мангуста и моделирования данных. Я использовал один к нескольким адресатам и номерам телефонов, ... Я также сменил внешний интерфейс, заменив экспресс-шаблоны для угловых ... Теперь переделаем угловую сторону вещей, чтобы обновить до углового 2/4 , –

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

  • Нет связанных вопросов^_^