如何在 sqflite 中存储复杂类型,例如:表 person(id,name,email,List cars); car 是一个有 id 和 type 的实体?是否有任何解决方案,例如如何存储它(如 Blob 或在新表中并将其链接到 person 表)?
问问题
1784 次
2 回答
4
你不能在一张简单的桌子上。我理解你的意思,你想存储,例如,这样的东西:
citizen = {
"name":"",
"id":"",
"childrens":{
children1:{
"name":"",
"id":"",
}
children2:{
"name":"",
"id":"",
}
}
}
这是因为 sqflite 是一个使用设备 sqlite 的工具,并且这个 DB 在 apache 软件下工作。这意味着,Sqflite 存储数据以及 sql DB 存储数据,您不能将对象存储在 sql 表中。
您应该根据需要为每个复杂数据创建其他表。像这样的东西(作为伪代码):
'CREATE TABLE Citizen ('
' id INTEGER PRIMARY KEY,'
' name TEXT,'
' children1Id INTEGER,'
' children2Id INTEGER,'
'); '
'CREATE TABLE Children ('
' id INTEGER PRIMARY KEY,'
' name TEXT'
')'
我希望这能帮到您。
于 2019-07-03T21:08:03.240 回答
2
它与移动开发无关,更多的是关于 SQL DB 和更一般的数据库管理。
要直接回答,您需要为带有 an 的汽车创建一个表,car-id
并且您需要知道人和汽车之间的关系以建立链接:
- 1 - 1:一个人只能拥有一辆车,一辆车只能属于一个人
- 1 - n : 一个人可以拥有多辆汽车,但一辆汽车只能属于一个人
- n - 1 : 一个人只能拥有一辆车,但一辆车可以有多个车主
- n - n : 最后最复杂的情况是一个人只能拥有一辆汽车,而一辆汽车可以拥有多个车主
在前三种情况下,您在其中设置了 id(例如 1-n :您在 car 表中放置了一个字段,该字段owner-id
是所有者的 id)
在最后一种情况下,您需要创建一个匹配表:matching-id
car-id
person-id
于 2019-03-26T10:18:45.633 回答