从Google表格上传分层数据到firebase

问题描述 投票:-1回答:1

我正在尝试将数据上传到firebase,其中我的数据库的结构是分层的。如何在Google表格中管理该结构。我一直在很多网站上寻找这个,但一无所获。 请帮忙。这是我的火力架的结构 enter image description here

更新1

在尝试建议的模型#2后,我无法上传重复的数据行。这是我的谷歌脚本:

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)
    }
}
firebase-realtime-database google-apps-script google-sheets-query
1个回答
1
投票

我知道有两种模型用于在表格/电子表格中存储分层数据:

  1. 将每个级别缩进到下一列,或
  2. 向每行添加父ID。

indent each level into a next column

这是您向表格显示的内容的最直接映射:

     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

这样做的一个优点是它在视觉上很容易阅读。但缺点是,如果您的数据不是完全同质的话,列标题很容易摆脱打击。

add a parent idea to each row

在此模型中,您将展平/标准化数据:

    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

这与您在关系数据库中存储数据的方式非常相似。毕竟:行是行,无论你存储什么表格结构。

如果可以嵌套课程,则可以添加ParentID列以保存对父课程的引用。

© www.soinside.com 2019 - 2024. All rights reserved.