Swift & Firebase - Сплит данных для информации о пользователе? - PullRequest
0 голосов
/ 25 мая 2018

В настоящее время я пишу фитнес-приложение, которое позволяет записывать все личные записи пользователя.

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

На мой взгляд, у меня есть два варианта:

ВАРИАНТ 1

Users
 |
 +--UserID
 |   |
 |   +--Name
 |   +--Phone
 |   +--etc..
 |
 |
Users-records
 |
 +--UserID
 |   |
 |   +--RecordName
 |   |   |
 |   |   +--recordValue
 |   |   +--recordType
 |   | 
 |   +--RecordName
 |   |   +--recordValue
 |   |   +--recordType

ВАРИАНТ 2

Users
 |
 +--UserID
 |   |
 |   +--Name
 |   +--Phone
 |   +--etc..
 |   +--Records
 |   |   |
 |   |   +--RecordName
 |   |   |   |
 |   |   |   +--recordValue
 |   |   |   +--recordType
 |   |   +--RecordName
 |   |   |   |
 |   |   |   +--recordValue
 |   |   |   +--recordType

Вопросы: нужно ли разделять коллекцию для пользователя?Как вы думаете, эта архитектура хорошо разработана для этой цели (т.е. записи личных записей пользователей)?

Большое спасибо

1 Ответ

0 голосов
/ 26 мая 2018

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

Так что я бы, вероятно, подошел к чему-то ближе ко второму варианту, может быть, так:

Users
 |
 +--UserID
 |   |
 |   +--UserInfo
 |   |   |
 |   |   +--Name
 |   |   +--Phone
 |   |   +--etc..
 |   |
 |   +--Records
 |   |   |
 |   |   +--RecordName
 |   |   |   |
 |   |   |   +--recordValue
 |   |   |   +--recordType
 |   |   +--RecordName
 |   |   |   |
 |   |   |   +--recordValue
 |   |   |   +--recordType

Я бы выбрал это, потому что я представляю васЯ хотел бы получить всю UserInfo одновременно, поэтому мы можем наблюдать за этим узлом "UserInfo" и получать все дочерние элементы: имя, телефон и т. д. *

Тогда я думаю, что вы 'Также мы хотим получить все записи одновременно, чтобы мы могли наблюдать за этим узлом «Записи» и получать все эти данные.

Кроме того, если вы хотите, вы можете получить все сразу, наблюдая за идентификатором пользователя.!

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

В итоге: Выберите вариант, который позволит вам получить то, что вам нужно, без лишних данных, которые вам не нужны!

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