外键Android DATABASE

时间:2016-05-20 15:37:52

标签: android database foreign-keys foreign-key-relationship

我对Android中SQLite数据库中“外键”的正确用法和实现感到困惑。

我创建了一个包含多个关系的数据库,如下所示:

CREATE TABLE "food" (
`_id`   INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
`name`  TEXT NOT NULL,
`description`   TEXT,
`category_id`   INTEGER,
FOREIGN KEY(`category_id`) REFERENCES food(_id) )

CREATE TABLE `category` (
`_id`   INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
`cagory_name`   TEXT NOT NULL)

CREATE TABLE "favourites" (
`_id`   INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
`id_favourite`  INTEGER NOT NULL,
FOREIGN KEY(`id_favourite`) REFERENCES food ( _id ))

如您所见,有3个表格,“food”的_id是连接表“category”和“favorites”的外键。

现在,在Android中,我看不到发生任何事情证明我在表之间创建了这样的关系。我是否会错过一些宣言才能使其生效? 它在Android中如何运作?

1 个答案:

答案 0 :(得分:0)

category_id外键引用似乎很奇怪。 有没有理由:

FOREIGN KEY(`category_id`) REFERENCES food(_id)

而不是

FOREIGN KEY(`category_id`) REFERENCES category(_id)

要确保强制执行外键约束,请在SQLite中运行

PRAGMA foreign_keys = ON;

有关文档,请参阅http://www.sqlite.org/foreignkeys.html