原谅我的无知,我是数据库约定的第一天初学者。
这是我的SQLite代码:(由我的数据库浏览器自动生成)
CREATE TABLE `ResearchItems` (
`ID` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
`Name` TEXT NOT NULL,
`Description` BLOB NOT NULL,
`PreReq1` INTEGER,
`PreReq2` INTEGER,
`PreReq3` INTEGER);
我打算使用数据库浏览器在数据库中手动插入更新数据。 我的意图是PreReq字段指向同一个DB中的其他项。显然,一旦输入,我永远不会想要通过添加或删除条目来无意中断连接。这有保证吗?
另外,我可以添加一些额外的实用程序来包含某种数据验证吗?与PreReq值一样,应该只是当前存在的密钥。
答案 0 :(得分:2)
听起来好像你想要foreign key constraints:
CREATE TABLE ResearchItems (
ID INTEGER PRIMARY KEY,
Name TEXT NOT NULL,
Description BLOB NOT NULL,
PreReq1 INTEGER REFERENCES OtherTable(PreReqID),
PreReq2 INTEGER REFERENCES OtherTable(PreReqID),
PreReq3 INTEGER REFERENCES OtherTable(PreReqID)
);