Моделирование данных Firebase для оперативного поиска / опережающего ввода - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть набор данных о местной беге на 10 миль за последнее десятилетие или около того.

Каждый год выглядит так: http://www.nlaa.ca/results/rr/2018/20180722tely10results.php

Для моей версии 0.1, я 'Мы объединили все эти таблицы в гигантский объект json:

[
    {
        "year": "2005",
        "position": "1",
        "name": "Colin Fewer",
        "chip-time": "52:05",
        "gun-time": "52:04",
        "class": "M25-29",
        "class-place": "1/58"
    },
    {
        "year": "2005",
        "position": "2",
        "name": "Dean Aylward",
        "chip-time": "52:57",
        "gun-time": "52:55",
        "class": "M25-29",
        "class-place": "2/58"
    },
    {
        "year": "2005",
        "position": "3",
        "name": "Peter Power",
        "chip-time": "54:49",
        "gun-time": "54:48",
        "class": "M40-44",
        "class-place": "1/126"
    }
]

В данный момент я просто выгружаю весь этот файл на страницу и напрямую взаимодействую с ним.Это прекрасно работает, но файл json огромен - требует загрузки 5,5 Мб.Так что это бесполезно.

Вместо этого я хочу попробовать перенести эти данные в Firebase.Проблема в том, что я не знаю, как структурировать эти данные.

Должен ли каждый год быть сбором, а каждый участник - документом?

Должно ли все это быть совершенно плоским?IE: одна коллекция и каждая запись - это новый документ?(в основном, как теперь мой файл json)

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

В текущем наборе данных содержится около 45 000 записей (в гонке участвует около 4000 человек каждый год).

Цените любые основные советы, которые кто-либо дает!

Вот мое приложение для справки: https://saltcod.github.io/mytely

Вот структура, о которой я сейчас думаю:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...