android - SQLite 以外的 Android 数据库工具?

标签 android database sqlite

我是 Android 编程的新手,我制作了一些使用 SQLite 存储用户数据的简单应用程序。现在我正在开发一个更复杂的应用程序,我需要在其中实现表之间的多对多关系。 database table setup

所以基本上,我有三个相互连接的层(3 个表),但我找不到一个好的教程或任何关于如何做到这一点的文档。我花了几周时间研究这个。我也研究了领域数据库,但它对于多对多表设置来说很复杂。

那么对于初学者来说,有没有更简单的解决方案呢?或者是否有其他工具可以用来完成我的任务。任何的意见都将会有帮助。谢谢:)

最佳答案

您的示例不是多对多关系。一对多,每个国家只能存在于一个大陆,每个州只能存在于一个国家。

您可以通过添加对父类型 ID 的引用来获取所需的结构。

CREATE TABLE continent (
  _id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
  name TEXT NOT NULL
)

CREATE TABLE country (
  _id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
  continentId INTEGER NOT NULL,
  name TEXT NOT NULL,
  FOREIGN KEY continentId REFERENCES continent(_id)
)

CREATE TABLE state (
  _id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
  countryId INTEGER NOT NULL,
  name TEXT NOT NULL,
  FOREIGN KEY countryId REFERENCES country(_id)
)

要选择大陆上的所有国家,只需使用正确的 ID 询问 SQL。

SELECT * 
FROM country 
WHERE continentId = ?

或者你可以加入他们。

SELECT * 
FROM continent 
  JOIN country ON continent._id = country.continent
  JOIN state ON country._id = state.countryId

关于android - SQLite 以外的 Android 数据库工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39927837/

相关文章:

Android design library 22.2.0 status bar semi transparent dark primary with the content behind 状态栏

php - 访问 MySQL 数据库的每个页面访问

database - 在数据集市中填充事实表的想法

android - 从 android 中的 SQLite 数据库请求多个单元格

excel - SQLite 3 CSV 导入表

android - 如何创建jni和Android.mk?

java - 从数据库检索数据(firebase)

python - 如何使用 Python 将带有引号和换行符的字符串插入到 sqlite 数据库中?

javascript - 输入事件监听器(onkeypress、onkeydown)在 Android 数字键盘中不起作用

php - 使用 Codeigniter Active Record 计算行总数