我有一个MySQL表,其结构如下
+------------------+------------------+----------------+
| comp_id | name | parent |
|------------------|------------------|----------------+
| 1 | comp1 | NULL |
+------------------+------------------+----------------+
| 2 | comp2 | 1 |
+------------------+------------------+----------------+
| 3 | comp3 | 2 |
+------------------+------------------+----------------+
| 4 | comp4 | 2 |
+------------------+------------------+----------------+
假设没有数据插入表中。换句话说,假设表是空的,我应该怎么做:
{
"org_name":"paradise island",
"daughters" : [
{
"org_name": "banana tree",
"daughters": [
{"org_name":"Yellow Banana"},
{"org_name":"Brown Banana"}
]
},
{
"org_name": "big banana tree",
"daughters": [
{"org_name":"green banana"},
{"org_name":"yellow banana"},
{
"org_name": "Black banana",
"daughters": [
{"org_name": "red spider"}
]
}
]
}
]
}
我研究了邻接列表模型和嵌套模型的大量资源,但没有详细说明如何通过JSON输入完成插入
答案 0 :(得分:0)
如果使用uuidv4作为id就可以了,你可以用递归函数标准化你的对象,将uuid作为id添加并构建父母关系。 之后,您只需使用您正在使用的任何数据库客户端批量插入数据。
这是UUIDV4的理想用例。 chance of a collision是不太可能的,所以你可以认为它是安全的。
你必须确保你的uuid发生器足够随机。糟糕的实施可能导致更高的碰撞可能性。
我建议使用uuid包。你可以在github上查找它的来源。它使用节点加密库作为随机数据生成器,根据documentation
加密强大很高兴知道: MongoDB的ObjectId是在similar way中创建的。它们也不能提供100%的防撞安全性。但他们不太可能认为这个机会无关紧要。
编辑:我假设您的代码在node.js中运行服务器端。在浏览器中生成uuid是不安全的,因为加密api仍然是实验性的,用户可能会试图故意造成冲突。