Загрузка иерархических данных в Firebase из листов Google

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

обновление 1

после попытки предложить модель № 2, я не могу загрузить повторяющиеся строки данных. вот мой скрипт Google:

var secret = 'in2HGSgx7uMtOvqhpIzUf1tPCI97cwnzGmae5Dg1'

function getFirebaseUrl(jsonPath) {
    return (
        'https://sheetsdemo-8d0e9.firebaseio.com/ ' +
        jsonPath +
        '.json?auth=' +
        secret
    )
}

function syncMasterSheet(excelData)
    var options = {
        method: 'put',
        contentType: 'application/json',
        payload: JSON.stringify(excelData)
    }
    var fireBaseUrl = getFirebaseUrl('TimeTable')

    UrlFetchApp.fetch(fireBaseUrl, options)
}

function startSync() {

    var sheet = SpreadsheetApp.getActiveSheet()
    //Get the number of rows and columns which contain some content
    var [rows, columns] = [sheet.getLastRow(), sheet.getLastColumn()]
    //Get the data contained in those rows and columns as a 2 dimensional array
    var data = sheet.getRange(1, 1, rows, columns).getValues()
    var dataObject = {};

    for (var i = 0; i < data.length; i++) {
        var dataRow = data[i];
        // in cell A I have my item name and in B i have my item code
        var day = dataRow[0];
        var section = dataRow[1];
        var course_id = dataRow[2];
        var time = dataRow[3];
        var course_title = dataRow[4];
        var teacher = dataRow[5];


        // we then create our first property on our data object dataObject.code-     name : { }
        dataObject[section + day] = {
            day: day,
            section: section,
            course_id: course_id,
            time: time,
            course_title: course_title,
            teacher: teacher

        };
        syncMasterSheet(dataObject)
    }
}

1 ответ

Мне известны две модели хранения иерархических данных в таблице / таблице:

  1. сделать отступ для каждого уровня в следующем столбце, или
  2. добавить родительский идентификатор в каждую строку.

сделать отступ для каждого уровня в следующем столбце

Это самое прямое отображение того, что вы показали в таблице:

     1         2         3          4       5       6
A                                  TIME    TITLE   TEACHER
B  Monday
C           FA16....
D                      COURSE1     11:00   CCN      OWAIS
E                      COURSE2     11:30   CG       MAM

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

добавить родительскую идею в каждую строку

В этой модели ваши данные сглаживаются / нормализуются:

    1         2       3          4       5       6    
A  DAY       CODE1    COURSEID   TIME    TITLE   TEACHER
B  Monday    FA16.... COURSE1    11:00   CCN     OWAIS
C  Monday    FA16.... COURSE2    11:30   CG      MAM

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

Если бы курсы могли быть вложенными, вы бы добавили столбец Parent ID для хранения ссылки на родительский курс.

Другие вопросы по тегам