В Firebase я могу подключить пользователя к нескольким таблицам? - PullRequest
0 голосов
/ 11 июня 2018

У меня есть две таблицы в моей базе данных Firebase.В flighthistory я записываю рейсы, которые совершил самолет.В flightperformance я записываю, насколько хорошо может работать каждый самолет.

Я думаю, что должна быть третья таблица с именами и идентификаторами самолетов, и что самолетам должен быть присвоен свой идентификатор в flighthistory и flightperformance.

Это правоспособ думать о координации между двумя таблицами данных?Как я могу кодировать это с Firebase?

1 Ответ

0 голосов
/ 11 июня 2018

Если я правильно понимаю, вам нужны три таблицы: 1: Имена и идентификаторы самолетов.2: Легкая история.3: летные характеристики.

И вместо того, чтобы иметь идентификатор плоскости из таблицы 1 в качестве внешнего ключа в таблицах 2 и 3 (как это было бы в базе данных sql), вы хотите то же самое «решение» в firebase?

Если это так: создайте таблицу плоскостей, в которой содержатся все плоскости.Когда вы создаете новую плоскость, ключ, который вы получите (используя getkey ()), будет идентификатором в firebase для этой конкретной плоскости.Вы можете использовать тот же ключ, что и в справочнике Flighthistory и Flightperformance, чтобы соединить самолет с таблицами истории и производительности.

Таблицы Firebase будут выглядеть так:

  • Плоскость -> ID / ключи для каждой плоскости -> Имя и модель самолета (возможно?).

  • FlightHistory -> Вы можете использовать тот же идентификатор / ключ здесь для самолета -> Некоторые данные истории полета.Хорошим решением здесь будет либо использование какого-то автоматического приращения (Или, может быть, дата + время?), И внутри этого числа будут данные как о том, откуда взялась плоскость, так и о месте назначения.

  • Летные характеристики -> Один и тот же идентификатор для каждого самолета -> Некоторые данные летных характеристик.

РЕДАКТИРОВАТЬ: Небольшой пример того, как это можно сделать:

//Get the firebase database reference in onCreate(). For this example, mDatabase will be the databasereference

public void createPlane() {
    //First getting the key which will be used as the reference between the tables
    String key = mDatabase.child("Planes").push().getKey();

    //Create a new plane
    Plane plane = new Plane("Coolplane", "Boeing 777-400");

    //Adding the plane to firebase, with the key as the reference
    mDatabase.child("Planes").child(key).setValue(plane);

    //Starting the methods that create the flighthistory and performance.Passing the key, which will be used as the ID in firebase (which connects the plane with the history and performance
    newFlightHistory(key);
    newPerformance(key);

//Not sure how your history and/or performance table will look like, but you 
just pass the key to these methods, and use these keys as the key when you 
create a new history / performance. 

}

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

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