Представьте, что я храню телефонные номера человека в формате JSON. Одним из таких JSON запись может выглядеть следующим образом:Подходы моделирования JSON
{
"firstName": "John",
"lastName": "Smith",
"phoneNumber": [
{
"type": "home",
"number": "212 555-1234"
},
{
"type": "mobile",
"number": "646 555-4567"
}
]
}
Один альтернативной структуры выше:
{
"firstName": "John",
"lastName": "Smith",
"homePhone": {
"number": "212 555-1234"
},
"mobilePhone": {
"number": "646 555-4567"
}
}
Каковы плюсы и минусы обоих подходов к моделированию? Очевидным я вижу, что первый подход позволяет получить все телефоны за один раз.
Третий подход, который сочетает первый и второй примеры, приведенные выше: '{...," phoneNumber ": {" home ":" ... "," mobile ":" ... "}}' Это позволяет вам получить все номера телефонов одновременно и для доступа к каждому имени по нотации пути (например, 'phoneNumber.home') вместо того, чтобы выполнять итерацию по массиву, анализируя значения типа. Хотя у массива есть преимущества для хранения больших коллекций, где требуется легкая итерация для фильтрации. Я думаю, что это сводится к балансу потребностей и предпочтений. – gfullam
Отлично, спасибо @gfullam. У меня будет только фиксированное количество «типов», поэтому ваш подход будет работать нормально. – Steve