Д
Size: a a a
Д
ВК
Д
ВК
Имеется два типа файлов: CSV и JSON. Внутри файлы выглядят следующим образом:
- пример содержимого CSV-файла
id,category,parent_id
1,Электроника
2,Бытовая техника
3,Телевизоры,1
4,Компьютеры,1
5,Телевизоры Sony,3
6,Холодильники,2
- пример содержимого JSON-файла
[
{
"id":1,
"category":"Электроника",
"subcategories":[
{
"id":3,
"category":"Телевизоры",
"subcategories":[
{
"id":5,
"category":"Телевизоры Sony"
}
]
},
{
"id":4,
"category":"Компьютеры"
}
]
},
{
"id":2,
"category":"Бытовая техника",
"subcategories":[
{
"id":6,
"category":"Холодильники"
}
]
}
]
Требуется:
1. Написать обработчик, который будет принимать на вход путь на сервере к одному из таких файлов. На входе может оказаться как CSV, так и JSON файл. Данный файл необходимо распарсить, создать из него вложенное множество (nested set) категорий и записать результат в БД. Для хранения данных использовать СУБД PostgreSQL.
Повторная загрузка файла, в котором есть изменения по сравнению с предыдущим загруженным файлом, должна приводить к обновлению дерева категорий согласно изменениям в новом файле.
Нужно учесть вероятность того, что файл по ошибке может оказаться другого формата или иметь отличное от вышеописанного содержимое.
Код покрыть тестами.
2. Спроектировать таблицы, в которых будут храниться плоский список категорий и вложенное множество, и написать запрос на создание таких таблиц.
Д
Д
Д
V
ВК
ВК
ВК
АП
V
создать из него вложенное множество (nested set) категорий и записать результат в БД
АП
V
V
Д
V
Д