Я пытаюсь понять результирующие различия в проектировании модели мангуста, используя один из следующих способов.
Допустим, у нас есть некоторый контент, который всегда будет локализован, а также всегда будет доступен с помощьюданная локаль.Его можно сохранить следующим образом:
"content: [
"en_US": {
"speech": "Welcome!",
"media": "welcome.jpg",
// ... other data localized in "en_US"
},
"de_DE": {
"speech": "Willkommen!",
"media": "willkommen.jpg",
// ... other data localized in "de_DE"
}
]
Другой способ, который я вижу, - хранить строки и файлы jpg вместе в объекте и использовать идентификатор языка в качестве ключа, здесь content
будет объектом ине массив:
"content": {
"speech": {
"en_US": "Welcome!",
"de_DE": "Willkommen!"
},
"media": {
"en_US": "welcome.jpg",
"de_DE": "willkommen.jpg"
}
}
Еще один способ - который приходит на ум при использовании mongoDB / mongoose, который не учитывает динамические ключи - будет иметь следующую структуру:
"content": [
{
"speech": "Welcome!",
"media": "welcome.jpg",
"lang": "en_US"
},
{
"speech": "Willkommen!",
"media": "willkommen.jpg",
"lang": "de_DE"
}
]
В последней версии я вижу, что БД должна искать в массиве соответствующий атрибут lang
, но в первых двух версиях к ним можно получить прямой доступ.
Вопрос : Это единственная разница?Как это влияет на скорость чтения, принимая тонны записей?Какие могут быть другие факторы, которые я здесь упускаю?