У меня есть иерархия таблиц в базе данных MySQL 5.6, которую мне нужно запросить в формате JSON для использования в древовидной структуре javascript.
Так же, как тест в моей колбе, я выполнил следующее только дляверхний уровень
def get_all_customers():
response_object = {'status': 'success'}
cnx = mysql.connector.connect(user="", password="", database="", host="localhost", port=3306)
cursor = cnx.cursor()
cursor.execute('SELECT idx, name FROM listcustomers ORDER BY name')
data = []
for idx, name in cursor:
data.append({'id': idx, 'label':name, 'otherProp': "Customer"})
response_object['customers'] = data
return jsonify(response_object)
, который возвращает
[
{ id: 1,
label: "customer 1",
otherProp: "Customer"
},
...
]
Но у каждого клиента есть местоположения, и у каждого местоположения есть области, и у каждой области есть активы, и у каждого актива есть проекты, и мне нужнотакже запросить их у потомков этого объекта JSON.Так, например, просто перейдя на один уровень глубже к локациям, мне нужно что-то вроде этого -
[
{ id: 1,
label: "customer 1",
otherProp: "Customer",
children: [
{
id: 5,
label: "location 5",
otherProp: "Location"
},
...
]
},
...
]
, где в моей базе данных listlocatiosn
, который ссылается на listcustomers
через столбец parentCustomerId
.Как я могу справиться с этим?В конечном итоге в этом дереве будет около 13 000 объектов, поэтому я знаю, что просто запросить данные, а затем проанализировать их с помощью python, будет гораздо более неэффективно, чем если бы я мог правильно выполнить запрос для начала.