我对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中如何运作?
答案 0 :(得分:0)
category_id外键引用似乎很奇怪。 有没有理由:
FOREIGN KEY(`category_id`) REFERENCES food(_id)
而不是
FOREIGN KEY(`category_id`) REFERENCES category(_id)
要确保强制执行外键约束,请在SQLite中运行
PRAGMA foreign_keys = ON;