Загрузка иерархических данных в 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 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 для хранения ссылки на родительский курс.