是否存在与数据库密钥讨论的危险



请原谅我的无知,我是数据库约定的第一天初学者。

这是我的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 字段指向同一数据库中的其他项目。显然,一旦输入它们,我永远不会希望连接因我添加或删除条目而无意中断开。这有保证吗?

另外,我可以添加一些额外的实用程序来包含某种数据验证吗?像 PreReq 值应该只是当前存在的键。

听起来好像你想要外键约束:

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)
);

最新更新